| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 447 人关注过本帖
标题:hanoi的思路部分Σ( ° △ °|||)︴总算知道思路了
只看楼主 加入收藏
Allfordream
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-7-23
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:6 
hanoi的思路部分Σ( ° △ °|||)︴总算知道思路了
=汉诺塔思路部分===(^ω^)===========================================


1.A,B,C三个塔 ABC顺序的hanoid塔不同顺序算是不同的塔。总体来看是一个A到C的hanoi塔
2.从小到大由1到n的n个圆片
3.递归的分类

{

/*右边加序号的为左边思路的基础上进行总结*/
第一状态==========
☆A塔N个,B塔□ C塔□                        
                                      【A上n-1的移动到B上】一个A到B的hanoi塔

第二状态=========
A塔□ B塔n-1  C塔1个                                                             然后 A到C


     
 //此状态下C上的已经是最大的了,可以看成□,这时,设N=n-1 便变成了 A塔□ B塔n C塔□                                    ②【B上的n-2移动到A上】一个B到A的汉诺塔
                        
 //下一步就是把B塔上的N-1个移到A塔 变成了A塔NN=n-2 B塔n-1 C塔□ →☆ A塔NN B塔□ C塔□(就是把B塔上的移到C上)                           然后B到C

}

①→②然后②→①
递归的终点是所有的盘子都到C





以上递归思路。




然后思路一直在更正中





[ 本帖最后由 Allfordream 于 2015-1-31 01:51 编辑 ]
2015-01-30 23:47
Allfordream
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-7-23
收藏
得分:0 
后悔发帖子了…                    

试着想如何用代码实现欸【其实好小白的问题
                      【想求删帖,兴奋了一下就发了个帖子
                     

でも……   
2015-01-30 23:58
Allfordream
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-7-23
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

然后试着做了个图

现在大概知道该怎么写函数了。




でも……   
2015-01-31 00:08
Allfordream
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-7-23
收藏
得分:0 
#include <stdio.h>

void hanoi(int i , char A , char B , char C);
void move(int i , char x , char y);

int main()
{
    int n ;
    printf("请输入n的值:");
    scanf("%d",&n);

    hanoi(n , 'A' , 'B' , 'C');

    return 0 ;
}

void hanoi(int i , char A , char B , char C)
{
    if(i == 1)
    {
        move(i , A , C);
    }
    else
    {
        hanoi(i - 1 , A , C , B);   //函数递归调用
        move(i , A , C);
        hanoi(i - 1 , B , A , C);
    }
}

void move(int i , char x , char y)
{
    static int c = 1 ;   
    printf("%d: %d from %c ——> %c \n", c++ , i , x , y);
}

でも……   
2015-01-31 01:29
Allfordream
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-7-23
收藏
得分:0 
还有再更正一下。

图是在不知道如何写代码的情况下画出来的引导思路图,可能并不代表最终的思路。 所以可以选择略过

でも……   
2015-01-31 01:56
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:5 
哈哈,学习挺有动力的嘛

我不是砖家,要努力成为砖家。
2015-01-31 09:34
Allfordream
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-7-23
收藏
得分:0 
回复 6楼 砖家的谎言
恩恩虽然我是小白,但是我超级喜欢~要认真的学欸

でも……   
2015-01-31 16:17
快速回复:hanoi的思路部分Σ( ° △ °|||)︴总算知道思路了
数据加载中...
 
   



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

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