输入
盘子个数n。
输出
将n个盘子从A移动到C的方法。
分析
使用递归的方法,将每一步的移动方法输出
代码
void move(int a, int b) {
printf("%c->%c\n", a, b);
}
void hanluota(int n, char a, char b, char c) {
if (n == 1) {
move(a, c);
}
else {
hanluota(n - 1, a, c, b);//将A座上的n-1个盘子借助C座移向B座
move(a, c);//将A座上最后一个盘子移向C座
hanluota(n - 1, b, a, c);//将B座上的n-1个盘子借助A座移向C座
}
}
int main() {
int n = 0;
scanf("%d", &n);
hanluota(n, 'A', 'B', 'C');
return 0;
}