标题:[求助]汉诺塔问题
取消只看楼主
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
结帖率:86.67%
 问题点数:0 回复次数:7 
[求助]汉诺塔问题

如下面汉诺塔的递归,要怎样才能得出A、B、C的移动次数?
递归中可以用 int i; i++; cout<<i; 计算次数吗?或可以用什么办法?

#include<iostream>
using namespace std;

void move(int n,char source,char destination,char spare);

int main()
{
const char PEG1='A',
PEG2='B',
PEG3='C';

cout<<"This program solves the Hanoi Towers puzzle.\n\n";
cout<<"Enter the nuimber of disks: ";
int numDisks;
cin>>numDisks;
cout<<endl;

move(numDisks,PEG1,PEG2,PEG3);
return 0;
}

void move(int n,char source,char destination,char spare)
{
if(n<=1)
cout<<"Move the top disk form "<<source<<" to "
<<destination<<endl;
else
{
move(n-1,source,spare,destination);
move(1,source,destination,spare);
move(n-1,spare,destination,source);
}
}

[此贴子已经被作者于2007-7-2 22:49:47编辑过]

搜索更多相关主题的帖子: 汉诺塔 int char cout 
2007-07-02 22:47
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
得分:0 
回复:(aipb2007)void move(int count,int start,in...

不行哦,运行结果这样的


2007-07-02 23:17
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
得分:0 
[IMG]http://photo.store.qq.com/http_imgload.cgi?/rurl2=9c2d97f2c8e52c759898c024cdc05454a35f12a258cffc679fbf55fbde59672a1c028d4882b8a497e007928d7835bf89a5970f866307f559e5dbf703e89270d2e4483d28aeb294c9854541b5cdea3c81182bc858[/IMG]
我想把开头那全是1那也递归下去 123...N
也就是想得到他一共移动了几次。

2007-07-02 23:28
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
得分:0 
移动几次后,全部移完成。

2007-07-02 23:30
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
得分:0 
嗯,就是想要一共移动的次数。就比如 A to c算一次A to b算一次,C to B又算一次。
是3个盘,移动7次这个数。
2^n-1可以得到移动次数了,谢谢了

2007-07-02 23:41
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
得分:0 
如果我想把每次移动记录下来,可以做到吗?
如:
1 A TO C
2 A TO B
3 C TO B
.....
N C TO B

第几步移动哪个。
也就是,我想让一个三岁小孩根据一步步来也能完成移动。

[此贴子已经被作者于2007-7-2 23:49:40编辑过]


2007-07-02 23:48
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
得分:0 

试过好多次都不懂该怎样做。


2007-07-02 23:53
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
得分:0 

谢谢了,可以了
原来要 static 做声明,我一直不懂


2007-07-03 12:21



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




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

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