标题:【求助】递归~HANOI塔~求讲解~
只看楼主
wangxinkai
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-3-16
 问题点数:0 回复次数:5 
【求助】递归~HANOI塔~求讲解~
#include <iostream>
using namespace std;
int c;
void print(char x, int n, char y)
{
    cout<<"第"<<n<<"个盘子"<<"从"<<x<<"移动到"<< y<< endl;
}

void move(int n, char A, char B, char C)
{
    if (n == 1)
        print(A, 1, C);
    else
   {
        move(n - 1, A, C, B);
        print(A, n, C);
        move(n - 1, B, A, C);
    }

}

void main()
{
    int n;
    cout << "几个盘子: " ;
    cin >> n;
    move(n, 'A', 'B', 'C');
}
搜索更多相关主题的帖子: HANOI 递归 讲解 
2008-03-17 23:39
wangxinkai
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-3-16
得分:0 
求递归详解。。。。。。

按步骤拆解一下。。谢谢。。。。。。
2008-03-17 23:40
wangxinkai
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-3-16
得分:0 
没有人能回答么????
2008-03-18 03:19
kaithwin
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-2-25
得分:0 
自己拿张纸画一下不久知道了
2008-03-18 10:35
kaithwin
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-2-25
得分:0 
/*我们可以这样考虑,当n=1时,我们只要直接将A柱的盘子移到C柱,
*当n>1时,我们可以先把n-1个盘子由A柱通过C柱移到B柱,
*此时就可以把A柱剩下的最后一个盘子直接移到C柱,
*这样接下来只要把n-1个盘子通过A柱移到C柱即可,
*如果就构成了递归的思路,
*我们可以定义个移动过程mov(n,a,b,c)表示将n个盘子从a通过b移到c*/
2008-03-18 11:37
wangxinkai
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-3-16
得分:0 
俩字,蒙
2008-03-19 11:23



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




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

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