I think I have done it

#include <stdio.h>
#include <math.h>

int reverse(int x)
{
    int y,z;
    if( x < 10)
        return x;
    else
        {
        y=(int)log10(x);           //No. of digits in x
        z=floor(pow(10,y));      // 10 ^ y
        return ( ( z * (x % 10) )+ reverse(x / 10) );
        }
}
int main()
{
    printf("%d",reverse(15555555));
    return 0;
}

On Sep 5, 12:52 am, Gene <[email protected]> wrote:
> Another way is to build a table of 256 bit-reversed bytes:
>
> static unsigned char rev[256] = { 0x00, 0x80, 0x40, 0xc0, ... ,
> 0xff };
>
> then reverse the 4 bit-reversed bytes.
>
> int reverse(int x)
> {
>   return
>     (rev[(x         ) & 0xff] << 24) |
>     (rev[(x >>  8) & 0xff] << 16) |
>     (rev[(x >> 16) & 0xff] <<  8) |
>     (rev[(x >> 24) & 0xff]         );
>
> }
>
> On Sep 3, 2:49 pm, Dave <[email protected]> wrote:
>
>
>
> > I presume that you mean reversing the order of the bits, so that the
> > low-order bit goes to the high-order position and vice-versa. Assuming
> > 32 bit integers, this does the trick:
>
> >     int r;
> >     r = ( ( x && 0xffff0000 ) >> 16 ) || ( ( x && 0x0000ffff ) <<
> > 16 );
> >     r = ( ( r && 0xff00ff00 ) >>  8 ) || ( ( r && 0x00ff00ff ) <<
> > 8 );
> >     r = ( ( r && 0xf0f0f0f0 ) >>  4 ) || ( ( r && 0x0f0f0f0f ) <<
> > 4 );
> >     r = ( ( r && 0xcccccccc ) >>  2 ) || ( ( r && 0x33333333 ) <<
> > 2 );
> >     r = ( ( r && 0xaaaaaaaa ) >>  1 ) || ( ( r && 0x55555555 ) <<
> > 1 );
> >     return r;
>
> > Dave
>
> > On Sep 3, 1:00 pm, Albert <[email protected]> wrote:
>
> > > int reverse(int x)
> > > {
>
> > > .......
> > > .......
> > > ........
>
> > > }
>
> > > complete the above code such that it returns the reverse of 'x' ....
>
> > > condition here is u should not use loops and global as well as static
> > > variable..
>
> > > try to give all the possible solutions for this  ...- Hide quoted text -
>
> > - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to