Codice: Seleziona tutto
/* #################
Torre di Hanoi v.1
HacK - www.methack.it
#################
*/
#include <stdio>
void Hanoi(int *mossa, int n, int src, int dest);
int main()
{
int mossa=1;
int dischi = 3;
/* il counter mossa è passato per riferimento */
Hanoi(&mossa,dischi,0,2); /* chiamata iniziale */
system("pause");
return 0;
}
void Hanoi (int *mossa, int n, int src, int dest) {
int aux; /* indice del piolo ausiliario */
if(n>0) {
aux = 3-(src+dest);
Hanoi(mossa,n-1,src,aux);
printf("%d) src %d -> dest %d\n", *mossa,src,dest); /* stampo lo spostamento da eseguire */
*mossa += 1;
Hanoi(mossa,n-1, aux, dest);
} /* if */
} /* Hanoi */