| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3742 人关注过本帖
标题:递归思路总是搞不明白,就比如汉诺塔。
取消只看楼主 加入收藏
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
结帖率:81.82%
收藏
已结贴  问题点数:15 回复次数:5 
递归思路总是搞不明白,就比如汉诺塔。
1.为什么汉诺塔能用函数递归调用解决(或者说怎样判断一个问题它是否能用递归思想,千万别跟我说阶乘的例子那个我知道)?
2.汉诺塔的自身调用结束条件是什么?
代码如下,请帮忙分析一下上面的问题。(码盲表示压力太大学递归,求指导鼓励...)
程序代码:
#include<stdio.h>
void move(int n,int x,int y,int z)
{
    if(n==1)
        printf("%c----->%c   ",x,z);
    else
    {
    move(n-1, x, z, y);
    printf("%c----->%c   ",x,z);
    move(n-1,y,x,z);
    }
}
void main()
{
    int h;
    printf("please input a number:\n");
    scanf("%d",&h);
    printf("the step to moving %2d diskes:\n",h);
    move(h,'a','b','c');
}

搜索更多相关主题的帖子: 大学 
2016-07-11 16:38
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
为什么这么浏览了不回答。。。在线等,搞不清粗很难受的
2016-07-11 16:41
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 3楼 vvvcuu
能就这个汉诺塔的例子详细解释一下吗?n==1时把x上的最后一个盘子移到了z上(执行printf)?下面一句move(n-1,y,x,z)的结束条件又是什么?难道是把y上的n-1个盘全移到z上就结束?总感觉这个汉诺塔的递归思路有点抽象,和其他的问题不一样。能多讲一点关于汉诺塔的递归过程和条件吗,能分步讲解就更好了!谢谢!!!
2016-07-12 09:12
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 4楼 平常心q
能就这个汉诺塔的例子详细解释一下吗?n==1时把x上的最后一个盘子移到了z上(执行printf)?下面一句move(n-1,y,x,z)的结束条件又是什么?难道是把y上的n-1个盘全移到z上就结束?总感觉这个汉诺塔的递归思路有点抽象,和其他的问题不一样。能多讲一点关于汉诺塔的递归过程和条件吗,能分步讲解就更好了!谢谢!!!
2016-07-12 09:12
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
有人吗???看会冒个泡也行嘛
2016-07-12 09:43
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
现在都没几个人学c了?问个问题都没几个人看的
2016-07-12 11:11
快速回复:递归思路总是搞不明白,就比如汉诺塔。
数据加载中...
 
   



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

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