高手帮我解释下递归方法的汉诺塔程序的执行顺序?谢谢

voidmove(charx,chary)//什么时候开始执行这个的?{cout<<x<<"-->"<<y<<endl;}voidhanoi(intn,chara,cha... void move(char x,char y) //什么时候开始执行这个的?
{
cout<<x<<"-->"<<y<<endl;
}
void hanoi(int n,char a,char b,char c)
{ void move(char x,char y); //x,y指的是什么?
if(n==1)
move (a ,c);
else
{
hanoi(n-1,a,c,b); //这个地方没明白a,b,c的位置不固定呢?
move(a ,c);
hanoi(n-1,b,a,c);//这次有变成b,a,c了
}
}
void main()
{
void hanoi(int n,char a,char b,char c);
int m;
cout<<"please enter the # of rings:";
cin>>m;
cout<<"move"<<m<<" "<<"rings' steps:"<<endl;
hanoi(m,'A','B','C');
}

谢谢。
比如说输入4,请告诉我它的运行流程。
展开
 我来答
_fmlyht
2008-12-10 · TA获得超过2359个赞
知道大有可为答主
回答量:2398
采纳率:0%
帮助的人:1839万
展开全部
void move(char x,char y) //什么时候开始执行这个的?
{
//move函数定义
//hanoi函数中的move(a ,c); 即是对该函数的调用
cout<<x<<"-->"<<y<<endl;
}
void hanoi(int n,char a,char b,char c)
{
/*
n;需要挪动的环的数目
a;源塔座
b;辅助塔座
c;目标塔座
*/
void move(char x,char y); /*x,y指的是什么? */
//move函数声明
//参数x,y分别表示源塔座,目标塔座
if(n==1) move (a ,c);
else
{ /*轮换辅助塔座*/
hanoi(n-1,a,c,b); //这个地方没明白a,b,c的位置不固定呢?
move(a ,c);
hanoi(n-1,b,a,c);//这次有变成b,a,c了
}
}
void main()
{
void hanoi(int n,char a,char b,char c);
int m;
cout<<"please enter the # of rings:";
cin>>m;
cout<<"move"<<m<<" "<<"rings' steps:"<<endl;
hanoi(m,'A','B','C');
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式