关于汉诺塔的问题,知道怎么移动盘子,却没明白计算机如何执行代码的
谁能解释一下汉诺塔C语言递归代码是怎么执行的2013-09-15 | 分享
#include<stdio.h>
#include<stdlib.h>
int main()
{
int hanoi(int n,char one,char two,char three);
int m;
printf("input the number of diskes:");
scanf("%d",&m);
printf("The step to moving %d disk:\n",m);
hanoi(m,'A','B','C');
system("pause");
}
int hanoi(int n,char one,char two,char three)
{
int move(char x,char y);
if(n==1)
move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
int move(char x,char y)
{
printf("%c-->%c\n",x,y);
}
***********************************************************
这段代码没有看懂int hanoi(int n,char one,char two,char three)
{
int move(char x,char y);
if(n==1)
move(one,three);
else
{
hanoi(n-1,one,three,two);//one借助two移到three
move(one,three);
hanoi(n-1,two,one,three);
}
}他是怎么执行的,网上查了几天了都是说的搬运的过程却没有人说明计算机执行代码的过程