请教下Hanoi塔问题知道它意思,就是不理解函数的过程他的递归调用是根据什么编的?为什么这样编?move(int n,int x,int y,int z){if(n==1)printf("%c-->%c\n",x,z);else{ move(n-1,x,z,y);printf("%c-->%c\n",x,);move(n-1,y,x,z)

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 17:51:34
请教下Hanoi塔问题知道它意思,就是不理解函数的过程他的递归调用是根据什么编的?为什么这样编?move(int n,int x,int y,int z){if(n==1)printf(%c\n",x,z);else{ move(n-1,x,z,y);printf("%c-->%c\n",x,);move(n-1,y,x,z)" />

请教下Hanoi塔问题知道它意思,就是不理解函数的过程他的递归调用是根据什么编的?为什么这样编?move(int n,int x,int y,int z){if(n==1)printf("%c-->%c\n",x,z);else{ move(n-1,x,z,y);printf("%c-->%c\n",x,);move(n-1,y,x,z)
请教下Hanoi塔问题
知道它意思,就是不理解函数的过程
他的递归调用是根据什么编的?为什么这样编?
move(int n,int x,int y,int z)
{if(n==1)
printf("%c-->%c\n",x,z);
else
{ move(n-1,x,z,y);
printf("%c-->%c\n",x,);
move(n-1,y,x,z);
}

请教下Hanoi塔问题知道它意思,就是不理解函数的过程他的递归调用是根据什么编的?为什么这样编?move(int n,int x,int y,int z){if(n==1)printf("%c-->%c\n",x,z);else{ move(n-1,x,z,y);printf("%c-->%c\n",x,);move(n-1,y,x,z)
解释如下:(不妨再温习一下什么是Tower of Hanoi)
三根柱子x,y,z.其中x上有n个直径递增的圆盘(最顶为最小,然后往下一次增大),现在要把x上的n个圆盘移到z上,要求在移动的过程中不允许出现任何大的圆盘叠放在任何小的圆盘上,柱y可作中转用).
如果柱x上只有一个圆盘
if(n==1),那么只需要将x上的这一个圆盘移到z上即可.程序中的
printf("%c-->%c\n",x,z);
就是把移动的方向打印出来显示在屏幕上.
否则(即柱x上有不止一个圆盘)
else
{
move(n-1,x,z,y);
printf("%c-->%c\n",x,z);
move(n-1,y,x,z);
}
我们先把柱x上最上面的(n-1)个圆盘移到柱y(记住柱y本来就是作中转用的)上(先不要去深究这n-1个圆盘怎么移得到柱y上,假设能办到),
move(n-1,x,z,y);
注意此时我们的x,y,z的角色变了.我们要从x上移动圆盘到y上了.你不妨这样标记一下move形参
move(圆盘数,来源柱,中转柱,目标柱).就是说现在x的角色是来源柱,y的角色是目标柱,我们要把x上的n-1个圆盘移到y上.
这一步完成之后,我们就该把剩在柱x上的那个最大的圆盘移到柱z上了.printf("%c-->%c\n",x,z);
现在我们的状态是最大的圆盘已经在z上,其余的n-1个在y上,x上没有圆盘.我们在交换一下x,y,z的角色:
move(n-1,y,x,z);
对照move(圆盘数,来源柱,中转柱,目标柱),
我们要把y上剩余的n-1个圆盘移到z上.
自此,n个圆盘全都从x上移到了z上.
你可以用很简单的情形来验证,比如n=2,和n=3,实在不行,可以动手画画看.这样会有助你理解.

请教下Hanoi塔问题知道它意思,就是不理解函数的过程他的递归调用是根据什么编的?为什么这样编?move(int n,int x,int y,int z){if(n==1)printf(%c-->%c ,x,z);else{ move(n-1,x,z,y);printf(%c-->%c ,x,);move(n-1,y,x,z) hanoi什么意思 罗曼蒂克的意思是什么?我天天听别人说“罗曼蒂克”就是不知道它的意思, 为什么很多英语单词我认识,会读,但就是不知道它意思, 为什么很多英语单词我认识,会读,但就是不知道它意思, 《元日》的译文是什么?就是不知道它的中文意思. 就是在在的那首SOLO,不知道名字的意思有木亲告诉咱下 英语翻译帮忙翻译下.是我见到有人这样说的,就是不知道啥意思 英语翻译我一直纳闷一个问题,在很久以前各国语言不相通的情况下,是怎样进行翻译的?怎么知道这个词就是我们汉语的意思呢?很费解...有谁帮着解释下, 请教一下离散数学的问题,划分不就是商集吗?同一等价关系的情况下!求解.急,尽量解释易懂一点,谢谢 燕鱼繁殖问题(急.急)我家的燕鱼(不是七彩神仙)快要繁殖了,有个问题想请教下,就是燕鱼繁殖的卵床用什么样的最好,我家里有个繁殖七彩神仙的卵床 是圆柱型的罐子,不知道大家有没有知 渔线轮的使用请教个问题,我在用海杆钓鱼时,每次下杆的时候,线轮总是要被线缠住.不知道是什么原因,请高手指教! paradise 的意思是什么?是放羊的星星里面的一首歌哦!就是不知道它中文意思?有谁知道么? 问一个英语的中文意思.Xmas 偶然看到这个单词,可是就是不知道它的中文意思. 一分一秒歌词什么意思就是Epik High的一分一秒歌很好听就是不知道歌词的中文意思是什么有知道的朋友告诉下哈 看了一段数学材料后不知道它在说什么?不明白其的意思时咋办?(前提不能请教他人) 请教一个化学的问题 蓄电池的 铅和硫酸的反映是如何反应的会产生什么物体?然后就是产生的这个东西用什么可以把它再弄没有?我很想知道答案但是我的积分不多只能给5分.希望有好心人帮 eat you up中文意思BOA的歌名就是这个呢~不过不知道是什么意思..希望大家准确解释下...