狂风乱吼 发表于 2019-6-2 22:52:06

递归是什么意思

就是在编程的时候,遇到递归
请问一下递归是什么意思呢

我叫MD 发表于 2019-6-2 23:02:15

递归说白了就是函数自己调用自己,举个最简单的例子
void test()
{
        printf("我要调用自己了\n");
        test();
}

比如像上面这样就是一个递归,当你在main函数中调用test函数时,函数会一直无限调用自己;
所以要注意编写递归程序时,一定要正确设置好结束条件,要不然就会无限循环下去

ba21 发表于 2019-6-2 23:12:35

我递给你一本书,你然后又还给我;
我再递给你一本书,你然后又还给我;
递给你一本书,你然后又还给我;
递给你一本书,你然后又还给我;
递给你一本书,你然后又还给我;
递给你一本书,你然后又还给我;

最终书还是要回到你手上,就是这个意思。

狂风乱吼 发表于 2019-6-2 23:33:10

本帖最后由 狂风乱吼 于 2019-6-2 23:34 编辑

ba21 发表于 2019-6-2 23:12
我递给你一本书,你然后又还给我;
我再递给你一本书,你然后又还给我;
递给你一本书,你然后又还给我; ...

说白了,就是循环是吧。跟循环有什么区别呢

我叫MD 发表于 2019-6-3 00:09:41

狂风乱吼 发表于 2019-6-2 23:33
说白了,就是循环是吧。跟循环有什么区别呢

你这问题很难说清楚的,建议自己百度一下,可以理解为递归某些情况下是循环的一种

bin554385863 发表于 2019-6-3 00:39:01

#include <stdio.h>
int fact(int n)
{
    int f = 1;
    if (n >= 1)
    {
      f = n * fact(n-1);//递归求阶乘
    }
    else
    {
      f = 1;
    }
    return f;
}
int main(int argc, char const *argv[])
{
    int n = 1, m = 0;
    printf("请输入要计算的值\n");
    scanf("%d", &n);
    printf("%d的阶乘是:%lld\n", n, (long)fact(n));
}
--------------------------------------------------
请输入要计算的值
99
99的阶乘是:18046469030281216

E:\Administrator\Documents\My C>
数据判断不严谨,仅仅是给你举个例子

ba21 发表于 2019-6-3 09:23:04

狂风乱吼 发表于 2019-6-2 23:33
说白了,就是循环是吧。跟循环有什么区别呢

找个简单的例子,自己走下流程自然明白

狂风乱吼 发表于 2019-6-4 11:15:56

我叫MD 发表于 2019-6-3 00:09
你这问题很难说清楚的,建议自己百度一下,可以理解为递归某些情况下是循环的一种

好,还是大神厉害

我叫MD 发表于 2019-6-4 12:07:01

狂风乱吼 发表于 2019-6-4 11:15
好,还是大神厉害

给个支持,采纳一下呗
页: [1]
查看完整版本: 递归是什么意思