题目来源:大工慕课 链接
作者:Caleb Sung
题目要求
汉诺塔问题(上机指导书P130 E6.3),这是经典的递归调用问题。输入的时候不要输入64,输入小一点的数,比如:3、4、5,体会下递归调用。
参考代码
#include<stdio.h>
void hanoi(int n, char x, char y, char z)
{
if(n==1)
printf("%c->%c\n",x,z);
else
{
hanoi(n-1,x,z,y);
printf("%c->%c\n",x,z);
hanoi(n-1,y,x,z);
}
}
void main()
{
int m;
printf("输入盘子不同大小的种类的数量: ");
scanf("%d",&m);
printf("移动这 %d 种盘子的步骤为:\n",m);
hanoi(m,'a','b','c');
}