[求助]这个程序中递归调用的详细流程,它是怎么工作的!
这个程序是解决一个河内塔的问题,并非真正的移动,这只是一个移动的方案!
请哪位仁兄帮我解决一下难道,我实在看不懂Hanoi()函数是怎么工作的,希望能把详细工作步骤写一下,谢谢:比如:第一步做什么,第二步做什么等等,
假设用户输入的是3!
#include <stdio.h>
void main()
{
int number;
printf("The Tower of Hanoi program.\n");
printf("Please enter the number of diske :");
scanf("%d",&number);
Hanoi('A','B','C',number);
}
int Hanoi(char one,char two,char three,int n) /*函数调用*/
{
if(n==1)
printf("%c-->%c.\n",one,three);
else
{
Hanoi(one,three,two,n-1);
printf("%c-->%c.\n",one,three);
Hanoi(two,one,three,n-1);
}
}