| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 187 人关注过本帖
标题:求解汉诺塔
收藏  订阅  推荐  打印

求解汉诺塔

才刚上三节选修课,老师就让编汉诺塔,晕死,去年上了一年C都美让我们干这个,急用,哪位高手帮帮忙?

TOP

汉诺塔是什么?你说清楚了,才能把程序做出来撒。

TOP

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

我的地盘我做主!

TOP

用递归做啊!

TOP

提供一个三个的(用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;
}

TOP

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

TOP

LZ你google 或者baidu下
保证多得吓死你

TOP

汉诺塔问题肯定要用递归嘛!
让我告诉大家:
//从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);
}
}
如果对递归理解不够,那末你将会很难理解这个算法.

TOP

挺难做 的。

TOP

这个数据结构那书里有详细解答

TOP

共有 186 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.079671 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved