有以下C语言程序,程序的输出结果是什么?请写出详细的执行过程。

2024年11月13日 05:50
有3个网友回答
网友(1):

你的程序写错了,return(fib(n-1)+fib(n-2)忘记了一个),改为return(fib(n-1)+fib(n-2)),程序就没错误了。
程序的运行结果为:16
代码解释如下:
fib()函数是个递归函数,实现如下功能:当参数n>2时,将n赋值为n-1,和n-2返回,直到n<=2停止,像主函数里面的fib(6),先返回fib(5)+fib(4);然后继续执行fib()函数,fib(4)+fib(3)+fib(3)+2;然后继续执行fib()函数返回【fib(3)+2】+【2+2】+【2+2】+2,然后继续执行fib()函数返回:{【2+2】+2}+【2+2】+【2+2】+2,然后结束将结果输出。

网友(2):

fib(6)=fib(5)+fib(4)=fib(4)+fib(3)+fib(3)+fib(2)=fib(3)+fib(2)+2*(fib(2)+fib(1))+2=fib(2)+fib(1)+2+2*(2+2)+2=2+2+2+8+2=16

网友(3):

这个是递归Fibonacci数列求第n项的程序
Fibonacci数列: F(0) = 1, F(1) = 1, F(n) = F(n - 1) + F(n - 2)
写出来就是: 1,1,2,3,5,8,13,21......
所以程序里的fib(6) = 13