| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1131 人关注过本帖
标题:请大家帮忙呀! 关于汉诺塔问题
只看楼主 加入收藏
2645216
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-4-7
收藏
 问题点数:0 回复次数:4 
请大家帮忙呀! 关于汉诺塔问题
程序我有  
我怎么就是看不明白呀!


if(n==1) move(one,three);
  else{
    hanoi(n-1,one,three,two);
    move(one,three);
    hanoi(n-1,two,one,three);
当n=1的时候  执行move(one,three);
然后执行什么呀??  可是n=3时,这个程序具体是怎么 打印出那七个步骤 比如 A-->C
有谁能给我讲讲呀!  我还是没太理解!
最好能一步一步  帮我  谢谢大家了!
搜索更多相关主题的帖子: 汉诺塔 
2005-04-08 09:34
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 
如果n==1  执行move (one,three)
否则 执行else后的循环体

动于心而静如水
2005-04-08 11:39
daxuediannao
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-4-5
收藏
得分:0 
   我也不明白 他是说后面的循环具体怎么给解释下啊

我就是我 我在努力
2005-04-09 17:43
hbjmll
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-3-14
收藏
得分:0 
if(n==1) move(one,three);
  else{
    hanoi(n-1,one,three,two);
    move(one,three);
    hanoi(n-1,two,one,three);
}

hanoi(n,x,y,z)表示借助y把n个从x移到z
我们用A,B,C分别表示你的程序中的one,two,three
n=3为例,我的理解如下(用缩进表示调用关系,后面的数字表示实际移动的七步):
hanoi(3,A,B,C)
.........hanoi(2,A,C,B)
....................hanoi(1,A,B,C)
..............................move(A,C)------------1
....................move(A,B)--------------------2
....................hanoi(1,C,A,B)
..............................move(C,B)------------3
.........move(A,C)-----------------------------4
.........hanoi(2,B,A,C)
....................hanoi(1,B,C,A)
..............................move(B,A)------------5
....................move(B,C)--------------------6
....................hanoi(1,A,B,C)
..............................move(A,C)------------7
2005-04-09 22:12
wwwindowsxp
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-10-18
收藏
得分:0 
[原创]关于汉诺塔问题的另类解
rx3VrzSP.rar (117.73 KB) 请大家帮忙呀! 关于汉诺塔问题


可以随手画出答案的方法。
汉诺塔的终极经典的算法。
2005-10-21 10:10
快速回复:请大家帮忙呀! 关于汉诺塔问题
数据加载中...
 
   



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

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