C语言问题,求详解。

来源:百度知道 编辑:UC知道 时间:2024/09/21 12:24:03
long fib(int n)
{if(n>2)return(fib(n-1)+fib(n-2));
else return(2);
}
main()
{printf("%ld\n",fib(6));
}
程序的输出结果是?

16,
你运行一下嘛。
其实主要就是嵌套的问题
我说第一次,后面的你自己推吧

就是n=6的时候,刚开始执行long fib(int n)函数;

肯定是执行if语句,然后你看return里面,

fib(n-1)+fib(n-2));//其实是fib(5)+fib(4);

是吧~~然后fib(5)、fib(4)分别又要调用long fib(int n)

函数,然后不断嵌套~后面自己算算看吧~

16
这是一个递归的算法。