| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 905 人关注过本帖, 1 人收藏
标题:小弟我很疑惑啊,【全部积分50】求递归问题。。。(谢谢各位大神!!!!)
取消只看楼主 加入收藏
laazyt
Rank: 2
等 级:论坛游民
帖 子:25
专家分:19
注 册:2010-7-17
结帖率:100%
收藏(1)
已结贴  问题点数:50 回复次数:4 
小弟我很疑惑啊,【全部积分50】求递归问题。。。(谢谢各位大神!!!!)
这是我写的一个简单的程序,想看看递归原理,失败。。。。。
#include<stdio.h>
void recursive(int n) ;
void main()
{
    int a;
    scanf("%d",&a);
    printf("\n\n\n");
    recursive(a);
    return ;
}
void recursive(int n)
{
    int t=1;        /*第一个问题*/
    if(n==0)
    {   
        printf("结果出来了%d\n",t++);
    }
    else if(n%2==0)
    {
        recursive(n/2);
        printf("除以2  %d\n",t++);
    }
    else if(n%2)
    {
        recursive(n-1);
        printf("减去1  %d\n",t++);
    }
}
有几个问题:
(1) 就是在标注的地方定义了t的值,程序好像是每递归一次就从头开始,所以后面的t++都为一
但是,我把那个定义改为printf("工作原理");结果就只在刚开始的时候出现“工作原理”,后面都没有了,求解.
(2) 就是递归到最后的时候,是系统将递归中参数存起来了吗?
(3)递归运行的时候,顺序是怎样的,请就这个题说一下。
其实俺是递归那块没学懂,书上的也没这个,自己看也不懂。。


[ 本帖最后由 laazyt 于 2010-7-28 13:48 编辑 ]
搜索更多相关主题的帖子: 递归 大神 积分 
2010-07-28 12:44
laazyt
Rank: 2
等 级:论坛游民
帖 子:25
专家分:19
注 册:2010-7-17
收藏
得分:0 
别让他沉了啊,小弟我在线等,谢谢
2010-07-28 12:50
laazyt
Rank: 2
等 级:论坛游民
帖 子:25
专家分:19
注 册:2010-7-17
收藏
得分:0 
回复 3楼 BJ_BOY
这就是个递归啊,比如输入5,递归,如果是2的倍数,调用这个数除以2作参数调用函数,如果是奇数,调用这个数减1作参数调用函数,如果是0,输出
2010-07-28 13:32
laazyt
Rank: 2
等 级:论坛游民
帖 子:25
专家分:19
注 册:2010-7-17
收藏
得分:0 
回复 5楼 BJ_BOY
我是在递归那块不太懂,恩,static可以送到函数里面去,不被销毁,谢谢
2010-07-28 15:31
laazyt
Rank: 2
等 级:论坛游民
帖 子:25
专家分:19
注 册:2010-7-17
收藏
得分:0 
回复 6楼 毕业旅行
知我者也啊,大谢。。。
2010-07-28 15:32
快速回复:小弟我很疑惑啊,【全部积分50】求递归问题。。。(谢谢各位大神!!! ...
数据加载中...
 
   



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

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