#include int pegA[50], pegB[50], pegC[50], topA, topB, topC; void showPegs ( int n ) { int i; printf(" Peg A: "); for (i=0; i<=topA; ++i) printf("%d",pegA[i]); for (i=topA+1; i0) { move(n-1,N,from,via,to); printf("Disk %d : Peg %c to Peg %c : ", n, from, to); switch (to) { case 'A' : pegA[++topA] = n; break; case 'B' : pegB[++topB] = n; break; case 'C' : pegC[++topC] = n; break; } switch (from) { case 'A' : --topA; break; case 'B' : --topB; break; case 'C' : --topC; break; } showPegs(N); move(n-1,N,via,to,from); } } int main () { int n; printf("n = "); scanf("%d",&n); init(n); move(n,n,'A','B','C'); }