#include <stdio.h>
void Hanoi(int n, char x, char y, char z) {
if (n == 1) {
printf("将第1个盘片从%c移动到%c\n", x, z);
return;
}
Hanoi(n - 1, x, z, y); // 将n-1个盘从x移动到z,以y作为辅助
printf("将第%d个盘片从%c移动到%c\n", n, x, z); // 移动第n个盘
Hanoi(n - 1, y, x, z); // 将n-1个盘从y移动到z,以x作为辅助
}
int main() {
int n;
scanf("%d", &n); // 输入盘片数
printf("n=%d时Hanoi(递归)的步骤如下:\n", n);
Hanoi(n, 'A', 'B', 'C'); // 假设A是起始杆,C是目标杆,B是辅助杆
return 0;
}
10-20
2806
11-25
321
01-28
2465
10-16
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交