| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 506 人关注过本帖
标题:递归调用的问题
只看楼主 加入收藏
C语言NEW
Rank: 2
来 自:C语言家族
等 级:论坛游民
帖 子:68
专家分:65
注 册:2013-6-26
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:7 
递归调用的问题
根本无法理解递归调用,求大家举例说明
2013-07-12 12:10
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
你把递归调用的代码贴上来,再告诉我你哪里不明白,我才能告诉你why

思考赐予新生,时间在于定义
2013-07-12 12:16
C语言NEW
Rank: 2
来 自:C语言家族
等 级:论坛游民
帖 子:68
专家分:65
注 册:2013-6-26
收藏
得分:0 
例如阶乘问题,为什么可以用递归调用

C语言菜鸟啦啦啦,必须的。
2013-07-12 17:25
qq525273446
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:54
专家分:161
注 册:2009-11-18
收藏
得分:2 
f(n)=n*f(n-1)  这样的数学都可以用递归
递归:通俗点说,就是函数体中调用本函数
缺点是:很耗时
著名的递归案例:汉诺塔

找工作中……
2013-07-12 22:41
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:17 
比如说n!,下面是代码:
程序代码:
#include <cstdio>
int Func(int n)//定义递归函数
{
    if(n < 2)                   //当输入的数小于2,则返回1
        return 1;
    else
        return n*Func(n-1);//比如说输入n=5,当一直执行n-1直到n=1的时候,此时执行上面的if语句,返回1,此时Func(1)=1
}

int main()
{
    int n;
    printf("请输入一个数:");
    scanf("%d",&n);
    printf("n! = %d\n",Func(n));

    return 0;
}
执行过程是:
Func(5)
5*Func(4)
5*(4*Func(3))
5*(4*(3*Func(2))))
5*(4*(3*(2*Func(1))))
当n为0的时候停止递归,返回结果
由于遇到1的时候返回1,那么Func(1)=1
所以结果是5*(4*(3*(2*1))) = 120

思考赐予新生,时间在于定义
2013-07-12 23:15
C语言NEW
Rank: 2
来 自:C语言家族
等 级:论坛游民
帖 子:68
专家分:65
注 册:2013-6-26
收藏
得分:0 
请问递归调用重要吗

C语言菜鸟啦啦啦,必须的。
2013-07-13 20:46
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:1 
一般吧!!!

这个怎么玩
2013-07-13 20:52
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
回复 6楼 C语言NEW
学习知识不要那么挑剔,

思考赐予新生,时间在于定义
2013-07-13 23:14
快速回复:递归调用的问题
数据加载中...
 
   



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

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