Possible Duplicate:
How does this work? Weird Towers of Hanoi Solution
Hello, while surfing google, i found this interesting solution to Tower Of Hanoi which doesn't even use stack. Can anybody explain me in brief, what is it actually doing? And this solution really acceptable?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, x;
printf( "How many disks? " );
scanf( "%d", &n );
printf("\n");
for (x=1; x < (1 << n); x++)
printf( "move from tower %i to tower %i.\n",
(x&x-1)%3, ((x|x-1)+1)%3 );
return 0;
}
Update :- what is the hardcoded number 3 doing in here?