#include <stdio.h>
int count[3];
int peg[3][1000];
void move(int a, int c, int n)
{
printf("move %d from %d to %d \n", n, a, c);
peg[c][ count[c]++ ] = peg[a][--count[a]];
for(int i = 0; i < 3; ++i)
{
printf("%d ", i);
for(int j = 0; j < count[i]; ++j)
{
printf("%d ", peg[i][j]);
}
printf("\n");
}
}
void hanoi(int from, int by, int to, int n)
{
if( n <= 0)
{
return;
}
hanoi(from, to, by, n-1);
move(from, to, n);
hanoi(by, from, to, n-1);
}
int main(void)
{
count[0] = 3;
peg[0][0] = 3;
peg[0][1] = 2;
peg[0][2] = 1;
hanoi(0, 1, 2, 3);
return 0;
}
06-05
1万+