
代码
#includeint c = 0; void move(char x, int n, char z) { printf("第 %d 步: 将 %d 号盘从 %c 移到 %cn", ++c, n, x, z); } void hanoi(int n, char x, char y, char z) { if (n == 1) move(x, 1, z); else { hanoi(n-1, x, z, y); move(x, n, z); hanoi(n-1, y, x, z); } } int main() { int n; printf("3个塔 a, b, c,最初圆盘在a, 中间盘b, 目标盘c."); printf("输入圆盘数:"); fflush(stdout); scanf("%d", &n); hanoi(n, 'A', 'B', 'C'); return 0; }