| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 750 人关注过本帖
标题:关于汉诺塔的程序问题
只看楼主 加入收藏
cclearner
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-6-28
收藏
 问题点数:0 回复次数:4 
关于汉诺塔的程序问题

#include <iostream>
using namespace std;
void move(char getone,char putone)
{
cout<< getone <<"-->"<<putone<<endl;
}
void hanoi(int n,char one,char two,char three)
{
void move(char getone,char putone);
if (n==1) move (one,three);
else
{
hanoi (n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}

int main()
{
void hanoi(int n,char one,char two,char three);
int m;
cout<<"Enter the number of diskes:";
cin>>m;
cout<<"the steps to moving "<<m<<" diskes:"<<endl;
hanoi(m,'A','B','C');
}
源代码就是这样了,我一点都看不懂,尤其红色部分,怎么就把整个问题执行了?

一点头绪都没有

搜索更多相关主题的帖子: 汉诺塔 char three void one 
2007-07-05 17:25
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
如果还没具体学到递归,建议你不要搞这个。
很难理解,只有3句话。
尝试用其他例子去理解递归,再回到这个问题上,会好懂的多。

Fight  to win  or  die...
2007-07-05 17:33
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
思想就是这样:
有N个盘,从 启始塔 移动N-1个盘到 过度塔 ;
移动第N个盘 从 启始塔 到 目标塔;
移动N-1个盘 从 过度塔 到 目标塔;

注:N-1表示第N个盘上面的所有盘

Fight  to win  or  die...
2007-07-05 17:37
cclearner
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-6-28
收藏
得分:0 
是的,思想知道,由代码推得
递归学了,学的云里雾里的
讲得太简单,打算换本书,不过是比较麻烦
总之这个想了好几天,仍然不懂

好人哪,一群好人哪!!!!!!
2007-07-05 17:43
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
这是数据结构的内容了,c++教材里都讲的很少的。

等把c++学到一定时候再去看<数据结构>吧!

Fight  to win  or  die...
2007-07-05 17:46
快速回复:关于汉诺塔的程序问题
数据加载中...
 
   



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

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