标题:求解汉诺塔
只看楼主
feixue1039
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-10-8
 问题点数:0 回复次数:10 
求解汉诺塔
才刚上三节选修课,老师就让编汉诺塔,晕死,去年上了一年C都美让我们干这个,急用,哪位高手帮帮忙?
搜索更多相关主题的帖子: 汉诺塔 求解 选修课 老师 
2007-10-18 20:00
blosaa
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-17
得分:0 
汉诺塔是什么?你说清楚了,才能把程序做出来撒。
2007-10-18 20:06
dingpin
Rank: 1
等 级:新手上路
帖 子:281
专家分:0
注 册:2007-9-29
得分:0 

是呀,汉诺塔是什么啊?
你主清楚要什么效果呀...
我们才有针对性的去做呀.....


我的地盘我做主!
2007-10-18 20:16
whfdbccn
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-9-29
得分:0 
用递归做啊!
2007-10-18 21:54
xuesong
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-10-18
得分:0 
提供一个三个的(用c++做的)
多个的自己改一下

#include<iostream.h>
void hanoi(int n,char a,char b,char c)
{
if(n>0)
{
hanoi(n-1,a,c,b);
cout<<a<<"->"<<c<<" ";
hanoi(n-1,b,a,c);
}
}
int main()
{
hanoi(9,'a','b','c');
return 0;
}

2007-10-18 21:57
xiaocunkele
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-10-19
得分:0 

我晕,说得太不明白了吧!

2007-10-19 00:07
baby66
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-10-16
得分:0 
LZ你google 或者baidu下
保证多得吓死你
2007-10-19 15:32
yoapple
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-10-13
得分:0 
汉诺塔问题肯定要用递归嘛!
让我告诉大家:
//从initneedle移动n个盘子到endneedle,让tempneedle做中间储存
void hanoi(int n,const string&initneedle,const string&endneedle,const string&tempneedle)
{
//终止条件:只移动一个盘子
if(n==1)
cout<<"move"<<initneedle<<"to"<<endneedle<<eddl;
else {
//从initneedle到tempneedle移动n-1个盘子,用endneedle进行临时储存
hanoi(n-1,initneedle,tempneedle,endneedle);
//最大的盘子到endneedle
cout<<"move"<<initneedle<<"to"<<endneedle<<endl;
//从tempneedle到endneedle移动n-1个盘子,用initneedle进行临时储存
hanoi(n-1,tempneedle,endneedle,initneedle);
}
}
如果对递归理解不够,那末你将会很难理解这个算法.

2007-10-19 18:18
闲人勿进
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-1-13
得分:0 

挺难做 的。

2007-10-19 18:27
zgqken
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-10-13
得分:0 
这个数据结构那书里有详细解答
2007-10-19 18:51



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




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

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