C++汉诺塔问题,高手帮忙

[复制链接]
查看11 | 回复1 | 2008-11-5 22:24:20 | 显示全部楼层 |阅读模式
#include
void hanoi(int,char,char,char);
void move(char,char);//一定要有分号
void main()
{
int x;
cout>x;
hanoi(x,'1','2','3');
}
void hanoi(int n,char a,char b,char c)
{
if(n==1)
move(a,c);
else
{
hanoi(n-1,a,c,b);
move(a,c);
hanoi(n-1,b,a,c);
}
}
void move(char n,char m)
{
cout"2.。。。但是起初只有1号塔上有盘子啊!

回复

使用道具 举报

千问 | 2008-11-5 22:24:20 | 显示全部楼层
程序不会出错的。出现这样的情况的原因在于:后台控制屏只能够显示一定的行数,不能够将所有的移动步骤全部显示出来,只显示最后的那些移动步骤。你可以将自己的程序改一下,不要每一步移动显示后都换行,改为每一步移动后加一个冒号,就可以看到所有的移动步骤。即将move函数改成下面的样子:void move(char n,char m) {
cout"31-->23-->21-->32-->12-->31-->31-->23-->23-->12-->13-->21-->31-->23-->21-->32-->12-->31--...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行