标题:Hanoi实现怎么错了
只看楼主
diaoxue
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2007-6-1
 问题点数:0 回复次数:4 
Hanoi实现怎么错了
#include<iostream.h>
void Move(int n,char l,char k);
void Hanoi(int n,char a,char b,char c);
int main()
{
int n;
char A,B,C;
cout<<"input n:"<<endl;
cin>>n;
Hanoi(n,A,B,C);
return 0;
}
void Move(int n,char l,char k)
{
cout<<n<<l<<"->"<<k<<endl;
}
void Hanoi(int n,char a,char b,char c)
{
char A,B,C;
if(n==1)
Move(1,A,B);
/*if(n<=0)
cout<<"Error!!!"<<endl;
else*/
if(n>0)
Hanoi(n-1,A,C,B);
Move(n,A,B);
Hanoi(n-1,C,B,A);
}
算法应该没问题了
搜索更多相关主题的帖子: Hanoi 
2007-10-22 23:52
eagleboycn
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-9-26
得分:0 

^_^我刚刚问过这个问题
这是 “六道”老兄的程序,看看吧:
#include <iostream>
using namespace std;
void move(char x,char y)
{
cout<<x<<"-->"<<y<<endl;
}
void hanoi(int n,char one,char two,char three)
{
if(n==1) move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}

int main()
{
int N;
cout<<"input the unmber of diskes:"<<endl;
cin>>N;
cout<<"the step to moving "<<N<<" diskes:"<<endl;
hanoi(N,'A','B','C');
return 0;
}


兵法的精要在于韬晦自己
2007-10-23 07:34
eagleboycn
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-9-26
得分:0 
看上去
void Hanoi(int n,char a,char b,char c)
这一句里面的三个变量 a,b,c
没有在Hanoi函数里面出现啊
那三个if ,还有
/*if(n<=0)
cout<<"Error!!!"<<endl;
else*/
是什么意思啊?

兵法的精要在于韬晦自己
2007-10-23 07:38
diaoxue
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2007-6-1
得分:0 

哦,是啊 ,谢啊
那不注释了吗


上善若水,水善利万物而不争,处众人之所恶
2007-10-23 08:46
diaoxue
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2007-6-1
得分:0 

最后的if后是一个语句块
搞定


上善若水,水善利万物而不争,处众人之所恶
2007-10-23 15:49



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




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

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