请高手帮我解答下下面的C程序过程 并帮忙注释下 谢谢了

来源:百度知道 编辑:UC知道 时间:2024/05/16 07:20:24
long fib(int n)
{if (n>2) return(fib(n-1)+fib(n-2)):
else return(2)
}
main()
{printf("%d\n",fib(3));
}

这是一个递归式,当N>2时调用fib(n-1)+fib(n-2)
当N<=2时反回2。
上式中fib(3)就是先走n>2路线计算fib(2)+fib(1)
而fib(2)和fib(1)计算结果就是n<=2路上的结果是2
这个式子结果就是4.
if(n>2)
return(fib(n-1)+fib(n-2)); /*当N>2时路线*/
else
return 2; /*当N<=2时路线*/
建议你去看看书,这个书上叫的比较明白,以后用的也比较多,
递归式是一种看上去比较少,单处理起来比较慢的一种算法。

递归,一层一层计算就好了啊!没看过书吗?