C语言讲义——函数递归

Posted tigerlion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言讲义——函数递归相关的知识,希望对你有一定的参考价值。

  • 函数直接或间接调用自身
  • 每次调用必须获得一些进展,进一步靠近目标
  • 达到目标就不再调用自身
  • 阅读递归函数不要纠缠于执行过程,而是相信递归函数会顺利完成任务

例:阶乘

0! =1(0 的阶乘定为1)
1! =1
2! =2*1=2
3! =3*2*1=6
n! = n × (n-1) ×…× 2 × 1

0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800

不用递归

main() 
    int ret;
    int i,j;
    for(i=0; i<=10; i++) 
        ret = 1;
        for(j = i; j>1; j--) 
            ret = ret *j;
        
        printf("%d! = %d\\n",i, ret);
    

使用递归

#include <stdio.h>
int factorial(int n) 
    if(n == 0) 
        return 1;
    
    int ret = n*factorial(n-1);
    return ret;

main() 
    int i;
    for(i = 0; i<=10; i++) 

        int ret = factorial(i);
        printf("%d! = %d\\n",i, ret);
    

技术图片

练习:斐波那契数列

技术图片

以上是关于C语言讲义——函数递归的主要内容,如果未能解决你的问题,请参考以下文章

(printf在哪里?)乐创DIY C语言讲义​——3.1

连载(学了这么多年C语言,你真的了解static关键词吗)乐创DIY C语言讲义​——4.4节

c语言递归函数

C语言 编写递归函数

c语言递归函数

讲一下c语言中递归函数的使用方法有哪些?