| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1032 人关注过本帖
标题:汉诺塔问题的移动方法唯一吗?
只看楼主 加入收藏
零下八度
Rank: 2
等 级:论坛游民
帖 子:15
专家分:36
注 册:2010-9-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
汉诺塔问题的移动方法唯一吗?
使用函数递归实现
搜索更多相关主题的帖子: 汉诺塔 
2010-09-16 20:31
x_wangyue
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:34
专家分:144
注 册:2010-8-30
收藏
得分:10 
你说的是使用函数递归调用做吗?
使用函数递归倒是会做,其余倒是没掌握!
这是我原来做题时弄的,不知道对不对你胃口:
include <iostream>

using namespace std;

int main()
{
    void hannuota(int,char,char,char);
    int n;
    cout<<"input the numbers of disks:"<<endl;
    cin>>n;
    hannuota(n,'A','B','C');
    return 0;
}

void hannuota(int n,char x,char y,char z)
{
    void move(char,int,char);
    if(n==1)
        move(x,1,z);

    else
    {
        hannuota(n-1,x,z,y);
        move(x,n,z);
        hannuota(n-1,y,x,z);
    }
}

void move(char getone,int n,char putone)
{
    static k=1;
    cout<<k<<n<<getone<<putone<<endl;
    if(k++%3==0)
        cout<<endl;
}
2010-09-17 00:21
零下八度
Rank: 2
等 级:论坛游民
帖 子:15
专家分:36
注 册:2010-9-14
收藏
得分:0 
你的语句我看过了。。。我有两个问题,

第一在主函数里调用hannuota(n,'A','B','C');这个为什么A B C还要加引号。。。

第二 在定义hannuota这个函数的时候可以改成这样不。。


void hannuota(int n,char x,char y,char z)
{
    void move(char,int,char);
    if(n==1)
        move(x,1,z);

    else
    {
        hannuota(n-1,x,z,y);
        move(x,n,z);
        hannuota(n-1,y,z,x);
        hannuota(n-1,x,y,z);   //用这两句话替代你的那一句。。。
    }
}
2010-09-17 12:47
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:4 
加单引号是因为ABC是char类型的、

南国利剑
2010-09-17 15:25
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
汉诺伊塔问题是典型的递归问题。
移动的规则是固定的。但是,是否有其他方法,你可以百度一下。

南国利剑
2010-09-17 15:28
x_wangyue
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:34
专家分:144
注 册:2010-8-30
收藏
得分:3 
回复 3楼 零下八度
只要逻辑是对的当然可以啦
2010-09-18 19:36
weble
Rank: 2
等 级:论坛游民
帖 子:59
专家分:83
注 册:2009-4-12
收藏
得分:3 
怎么证明方法是唯一的?

路漫漫其修远兮,吾将上下而求索
2010-09-19 23:14
快速回复:汉诺塔问题的移动方法唯一吗?
数据加载中...
 
   



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

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