标题:高手 帮帮忙解释一下汉诺塔 自己看不太明白怎么回事
只看楼主
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
结帖率:92.86%
已结贴  问题点数:20 回复次数:5 
高手 帮帮忙解释一下汉诺塔 自己看不太明白怎么回事
汉诺塔


void hanoi(int n,int p1,int p2,int p3)
{
 if(1==n)
  cout<<"盘子从"<<p1<<"移到"<<p3<<endl;
 else
 {
  hanoi(n-1,p1,p3,p2);
  cout<<"盘子从"<<p1<<"移到"<<p3<<endl;
  hanoi(n-1,p2,p1,p3);
 }
}

谢谢


[此贴子已经被作者于2016-3-16 13:16编辑过]

2016-03-16 13:14
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:15 

能编个毛线衣吗?
2016-03-16 16:14
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:5 
回复 2楼 wmf2014
这个动图做的不错

一片落叶掉进了回忆的流年。
2016-03-16 16:15
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
得分:0 
回复 2楼 wmf2014
其实我也看过这个动态图   我也知道怎么移动的  我就是不理解代码为什么这么写

不要不要的。。。
2016-03-17 12:43
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
得分:0 
回复 3楼 诸葛欧阳
哈哈

不要不要的。。。
2016-03-17 12:44
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
回复 4楼 露营地
这个递归的诀窍在于p1、p2、p3这3个参数的不断交换,你可以展开这个递归就明白了:


能编个毛线衣吗?
2016-03-17 16:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-462557-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019619 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved