搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ [求助] "汉诺塔问题“求解
标题:
[求助] "汉诺塔问题“求解
只看楼主
aipb2007
来 自:CQU
等 级:
贵宾
威 望:
40
帖 子:2879
专家分:7
注 册:2007-3-18
第
11
楼
得分:0
N=64用递归是不可能计算出来的
Fight to win or die...
2007-10-22 19:14
eagleboycn
等 级:
新手上路
帖 子:191
专家分:0
注 册:2007-9-26
第
12
楼
得分:0
以下是引用
aipb2007
在2007-10-22 19:14:26的发言:
N=64用递归是不可能计算出来的
何解?
为什么?
能说明原因吗?
谢谢了
兵法的精要在于韬晦自己
2007-10-23 07:31
aipb2007
来 自:CQU
等 级:
贵宾
威 望:
40
帖 子:2879
专家分:7
注 册:2007-3-18
第
13
楼
得分:0
你算算 2^64-1
就算有无限大的内存使用,时间也不够啊!
Fight to win or die...
2007-10-23 10:34
eagleboycn
等 级:
新手上路
帖 子:191
专家分:0
注 册:2007-9-26
第
14
楼
得分:0
以下是引用
aipb2007
在2007-10-23 10:34:07的发言:
你算算 2^64-1
就算有无限大的内存使用,时间也不够啊!
也就是说理论上有结果
但是结果会接近无限长?
我用64运行过,等了1分多钟,看还在算,就没等了
兵法的精要在于韬晦自己
2007-10-23 16:41
xiaodong5800
等 级:
新手上路
帖 子:8
专家分:0
注 册:2010-3-5
第
15
楼
得分:0
#include<stdio.h>
void main()
{
int m;
void mana(int n,char one,char two,char three);
scanf("%d",&m);
mana(m,'A','B','C');
}
void mana(int n,char one,char two,char three)
{
void move(int no,char x,char y);
if(n==1)
move(n,one,three);
else
{
mana(n-1,one,three,two);
move(n,one,three);
mana(n-1,two,one,three);
}
void move(int no,char x,char y)
{
printf("Move disk %d from %c to %c",no,x,y);
printf("\n");
}
}
情不自禁自己也写了一个,不过和大家的差不多
2010-03-06 20:37
15
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-179678-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.051230 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved