long fib(int n)
{if(n>2)
return(fib(n-1)+fib(n-2));
else
return(2);
}
main()
{ printf("%d\n",fib(3));
程序分析:
首先将 3 传给 fib()中的n:
第一步: n=3; 第二步:实现递归调用,将2传给fib()函数(n=2)
if(n>2) 因为n=2,所以做else部分,所以函数fib(2)的值是2,
return(
fib(2)+fib(n-2); 又返回函数调用处,"return(2+fib(n-2)),要知道这里的
reutrn(2) n是等于3的。又调用return(2+fib(1));
n=1做else部分,又返回fib(1)的值为2。
所以 return(2+2);结果为4。