码迷,mamicode.com
首页 > 编程语言 > 详细

C语言讲义——函数递归

时间:2019-07-15 21:19:21      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:clu   技术   目标   斐波那契数列   执行   mic   函数   image   语言   

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

例:阶乘

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语言讲义——函数递归

标签:clu   技术   目标   斐波那契数列   执行   mic   函数   image   语言   

原文地址:https://www.cnblogs.com/tigerlion/p/11191517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!