Возможный дубликат:
Как Это работает? Странные решения Ханойских башен
Просматривая Google, я нашел это интересное решение для Tower Of Hanoi, которое даже не использует стек в качестве структуры данных.
Может ли кто-нибудь объяснить мне вкратце, что он на самом деле делает?
Это решение действительно приемлемо?
Код
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, x;
printf("How many disks?\n");
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;
}
Обновление: что здесь делает жестко заданный номер 3?