计算斐波那契数列第n项的函数定义如下:
int fib(int n) { if (n == 0) return 1; else if (n == 1) return 2; else return fib(n - 1) + fib(n - 2); }
若执行函数调用表达式fib(10),函数fib被调用的次数是:
C(0) = 1;
C(1) = 1;
C(n) = C(n-1) + C(n-2) + 1; n>=2;
故:
C(0) = 1;
C(1) = 1;
C(2) = 1 + 1 + 1 = 3;
C(3) = 3 + 1 + 1 = 5;
C(4) = 5 + 3 + 1 = 9;
C(5) = 9 + 5 + 1 = 15;
……