设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1920|回复: 3
打印 上一主题 下一主题

Hanoi实现怎么错了

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 02:14:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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);
}
算法应该没问题了
2#
发表于 2009-11-3 02:14:28 | 只看该作者
^_^我刚刚问过这个问题
这是 “六道”老兄的程序,看看吧:
#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;
}
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 02:14:31 | 只看该作者
哦,是啊 ,谢啊
那不注释了吗
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 02:14:33 | 只看该作者
最后的if后是一个语句块
搞定
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 03:02 , Processed in 0.115173 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表