标题:Hanoi塔问题
只看楼主
lsd98
Rank: 2
等 级:论坛游民
帖 子:51
专家分:26
注 册:2010-3-30
结帖率:76.92%
已结贴  问题点数:5 回复次数:2 
Hanoi塔问题
设a,b,c是3个塔座。开始时,在塔座a上有一叠共n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则:
规则1:每次只能移动1个圆盘;
规则2:任何时刻都不允许将较大的圆盘压在较小的圆盘之上;
规则3:在满足移动规则1和2的前提下,可将圆盘移至a,b,c中任一塔座上。
void hanoi(int n, int a, int b, int c)
   {
       if (n > 0)
       {
          hanoi(n-1, a, c, b);
          move(a,b);
          hanoi(n-1, c, b, a);
       }
   }
应用C++ MFC编写一个解决以上问题的可视化程序;编程大侠们,最好有较为详细的注释!
我的可给积分只剩下5分了,感谢有心人
搜索更多相关主题的帖子: Hanoi 
2010-04-02 23:16
guoangang123
Rank: 2
等 级:论坛游民
帖 子:14
专家分:29
注 册:2007-5-12
得分:2 
你要找的可视化程序,在CSDN网站里面有的,不过要有积分才能下载。
如果说你需要详细的解释,我觉得最好的解释只能是程序了,多多的看几遍,是会明白的。
2010-04-05 22:02
asdjc
Rank: 6Rank: 6
来 自:武汉
等 级:侠之大者
威 望:7
帖 子:98
专家分:487
注 册:2010-1-22
得分:2 
你的程序是对的呀,
void hanoi(int n, int a, int b, int c)
   {
       if (n > 0)
       {
          hanoi(n-1, a, c, b);
          move(a,b);
          hanoi(n-1, c, b, a);
       }
   }
至于可视化就是用MFC加入图形动画元素,就是给移动编一个类,运行move函数时启动移动的动画图像。
2010-04-09 14:35



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




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

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