Wie funktioniert dieser iterative Tower of Hanoi? C [duplizieren]

Mögliches Duplizieren:
Wie funktioniert das? Seltsame Türme von Hanoi Solution

eim Surfen in Google fand ich diese interessante Lösung für Tower Of Hanoi, die nicht einmal Stack als Datenstruktur verwende

ann mir jemand kurz erklären, was es eigentlich tu

st diese Lösung wirklich akzeptabe

Cod

#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;
}

Update: Was macht die fest codierte Nummer 3 hier?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage