Skip to content
On this page

C语言函数递归


标签:clang/basic  
  • 一个递归函数由出口和子问题组成

比如计算斐波那契数列 :

c
#include <stdio.h>

/** a, b 是斐波那契数列头两个数字 */
int fibo(int n, int a, int b) {
    return n == 0 ? a : fibo(n - 1, b, a + b);
}

int main(int argc, char const *argv[]) {
    int n = 20;
    printf("斐波那契第%d个数字是: %d\n", n, fibo(n, 0, 1));
    return 0;
}
  • 递归函数的出口是 n == 0
  • 递归函数的的子问题是 a + b , 即前两项相加

Last updated: