int HanNuo_i = 1; //记录移动次数
void Move(int num,char X,char Y,char Z)
{
if (num == 1)
{
printf("第%d次移动 %c -> %c \n", HanNuo_i++, X, Z);
}
else
{
Move(num-1,X,Z,Y);
printf("第%d次移动 %c -> %c \n", HanNuo_i++, X, Z);
Move(num-1,Y,X,Z);
}
}
void HanNuoTa()
{
while (1)
{
HanNuo_i = 1;
printf("请输入汉诺塔的层数:");
int num;
scanf("%d", &num);
Move(num, 'X', 'Y', 'Z');
}
}
C语言:使用递归实现汉诺塔
于 2019-04-15 14:13:14 首次发布