| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1351 人关注过本帖
标题:[求助]汉诺塔问题苦思10小时以上,还不是不太理解。哪位大人是否可以帮忙解 ...
只看楼主 加入收藏
sjlrs
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-2-24
收藏
 问题点数:0 回复次数:5 
[求助]汉诺塔问题苦思10小时以上,还不是不太理解。哪位大人是否可以帮忙解答
void move(char x,char y)
{
 printf("%c-->%c\n",x,y);
}
void hanoi(int n,char a,char b,char c)
{
 if(n==1)move(a,c);
 else
  {
   hanoi(n-1,a,c,b);
   move(a,c);
   hanoi(n-1,b,a,c);
  }
}
main()
{
 int m;
 printf("input the number of diskes:");
 scanf("%d",&m);
 printf("The step to moving %3d diskes:\n",m);
 hanoi(m,'A','B','C');
 getch();
}

当n==2时,汉诺塔用递归移动的步骤都能理解了

,但n==3时,A-C, A-B, C-B, A-C,B-A, B-C,A-C,主要是不能理解递归时,C-B,B-A,B-C 是哪个函数做实参的。抱歉,头想的有点糊涂了,表达不太清楚
搜索更多相关主题的帖子: 汉诺塔 quot char 大人 hanoi 
2005-03-03 12:25
sjlrs
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-2-24
收藏
得分:0 
  hanoi(n-1,a,c,b); 这个递归是不是实现A塔到B塔的移动,他是如何实现C-B,B-A,B-C的
  hanoi(n-1,b,a,c); 这个递归是不是实现B塔到C塔的移动呢?
  
2005-03-03 12:32
月影游侠
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-3-2
收藏
得分:0 
不懂
2005-03-04 14:34
llee
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-3-6
收藏
得分:0 

hanoi(n-1,a,c,b); 这个递归是不是实现A塔到B塔的移动,他是如何实现C-B,B-A,B-C的 hanoi(n-1,b,a,c); 这个递归是不是实现B塔到C塔的移动呢?

你问得没有错,就是这样的!! 我对这个程序也看过好多次啦,我认为它的功能就是你 所说的那样!

2005-03-06 12:50
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 
递归思想要慢慢理解才能领悟,领悟后必然收益
汉诺问题的递归思想就是三步走:
原来都在A柱,辅助B柱,目标C柱
(1)想办法把A柱上的除最底下一个以外的盘借助C柱全部移到 B柱,
(2)把最后剩下的一个盘从A移到C;
(3)把B柱上的盘想办法全部移到C柱;
你或许已经发现我上面用了想办法这个词,而实现这个要求的办法我已经给出,你应该注意到每操作一次,问题的规模都在减小:原来是把N个盘移动到C,我已经转化为N-1个盘的问题,这就是递归的本质;

还有一个故事:
从前有座山,山上有个庙,庙里有个老和尚给小和尚讲故事,讲的内容是:“从前有座山……”
这就是递归了,当然上面的递归是物休止的,但实际应用中递归函数都有出口条件,上面的函数的出口就是n=1了

我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2005-03-06 13:50
yuchujin
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-25
收藏
得分:0 
[IMG]http://www.[/IMG][IMG]http://www.[/IMG]

........晕 这个BBS不能贴图.......... G-G-G-G-G-G-G-UNIT
2006-07-25 22:09
快速回复:[求助]汉诺塔问题苦思10小时以上,还不是不太理解。哪位大人是否可以帮 ...
数据加载中...
 
   



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

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