zoukankan      html  css  js  c++  java
  • 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
    ",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
    ",i, ret);
    	}
    }
    

    练习:斐波那契数列

  • 相关阅读:
    十天冲刺之一
    每日日报2021 4/30
    每日日报2021 4/29
    每日日报2021 4/28
    每日日报2021 4/27
    每日日报2021 4/26
    每日日报2021 4/24
    每日日报2021 4/23
    《梦断代码》读后感
    273. Integer to English Words
  • 原文地址:https://www.cnblogs.com/tigerlion/p/11191517.html
Copyright © 2011-2022 走看看