| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 950 人关注过本帖
标题:这段代码计算什么??
只看楼主 加入收藏
qqwuming
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2007-5-31
收藏
 问题点数:0 回复次数:5 
这段代码计算什么??
void  H(int n, int A , int B, int C )
{
    if(n>0)
{

    H(n-1, A, C B);
    MOVE(n, A , B);
    H(n-1, C, A, B);
}
搜索更多相关主题的帖子: 代码 
2008-09-03 09:19
qqwuming
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2007-5-31
收藏
得分:0 
继续提问.................

2008-09-03 14:03
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
貌似是汉诺塔的递归程序:

这是我写的汉诺塔递归函数:
////////////////////////////////////////////////////
//Hanoi()函数   递归求解汉诺塔问题
//n:盘子的个数  A,B,C表示三个柱子
//即把A上所有的盘子,以B为过渡全部移到C上
////////////////////////////////////////////////////
void Hanoi(int n,char A,char B,char C)
{
    if(n==1)
    {
        //递归结束的条件
        cout<<"把顶部的盘子从柱子:"<<A
        <<"------->"<<C<<endl;
    }
    else
    {
        //以C作为过渡把A上的上面n-1个盘子移到B上
        Hanoi(n-1,A,C,B);
        cout<<"把顶部的盘子从柱子:"<<A
        <<"------->"<<C<<endl;
        //以A作为过渡把B上所有的n-1个盘子全部移到C上
        Hanoi(n-1,B,A,C);
    }
};
/////////////////////////////////////Hanio()函数结束
2008-09-03 21:47
qqwuming
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2007-5-31
收藏
得分:0 
感谢回复

如何求解这段代码的递推式?????

2008-09-04 10:18
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
嗯,看出来了...是汉诺塔吧...

2008-09-04 12:24
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
如果说你要看递推公式,可以看我代码里的注释,这就可以看出递推公式,

写递归代码就与高中数学里的递推数列类似,首先要给出第一项A1,这就好比递归结束的条件,

然后再去递推,当然,别误会,只是打个比方,递推和递归仍然是两个概念。

你可以自己画图理解我写的注释,已经很详细了...
2008-09-04 22:51
快速回复:这段代码计算什么??
数据加载中...
 
   



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

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