标题:大神,求运算过程。
只看楼主
忧伤的小王子
Rank: 2
等 级:论坛游民
帖 子:26
专家分:43
注 册:2012-9-12
结帖率:66.67%
已结贴  问题点数:20 回复次数:10 
大神,求运算过程。
#include <stdio.h>
void hanoi(int n, char A, char B, char C) {
if(n == 1) {
printf("Move sheet %d from %c to %c\n", n, A, C);
}
else {
hanoi(n-1, A, C, B);
printf("Move sheet %d from %c to %c\n", n, A, C);
hanoi(n-1, B, A, C);
}
}
int main() {
int n;
printf("请输入盘数:");
scanf("%d", &n);
hanoi(n, 'A', 'B', 'C');
return 0;
}
搜索更多相关主题的帖子: void include return 
2013-03-14 01:34
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
得分:3 
你先画个图就3个盘子的...
然后慢慢的跟着程序分析就是了

仰望星空...........不忘初心!
2013-03-14 01:38
忧伤的小王子
Rank: 2
等 级:论坛游民
帖 子:26
专家分:43
注 册:2012-9-12
得分:0 
回复 2楼 Susake
我只是不理解:
hanoi(n-1, A, C, B);
…………
hanoi(n-1, B, C, A);
具体搬盘子的过程还是明白的。但上面的句子却不懂,能解释一下吗?谢谢……

我是一只不愿早起的菜鸟,我怕被虫吃……唯愿有一天化小虾一条!
2013-03-14 01:59
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
得分:5 
你一层一层的带嘛...比如说输入 3,‘a’, 'b', 'c'
第一次调用 3!= 1
han(2,a,c,b)//简写了 还是第一个han()    -----重新han()  但是a,b,c的顺序换了
知道这个弄完

move   a---c//接着运行中间的   注意abc的顺序     


han(1,b,a,c)//再、、、、、


仰望星空...........不忘初心!
2013-03-14 02:11
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:2 
经典的递归问题了,汉诺塔

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-03-14 07:05
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:2 
哈哈,递归汉诺塔

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-03-14 07:05
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:2 
先把N-1个盘子从A,运用C,移到B
再把第N个盘子移到C
然后再把N-1个盘子从B运用A移到C

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-03-14 07:07
kemenglin
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2013-3-12
得分:2 
看书,递归算法
2013-03-14 11:13
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:2 
总体原理就是借助C盘子,把A盘子的移到B盘子,然后借助A盘子,把B盘子上的移到C盘子上

Maybe
2013-03-14 11:21
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
得分:2 
楼主找找书吧,书上有介绍
2013-03-14 13:40



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




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

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