一道C语言题目
longfib(intg){switch(g){Case0:return0;case1:case2:return1;}return(fib(g-1)+fib(g-2));...
long fib(int g)
{
switch(g)
{
Case 0: return 0;
case 1:
case 2: return 1;
}
return(fib(g-1)+fib(g-2));
}
main()
{
long k;
k=fib(7);
printf("k=%ld\n",k);
}
【提示】注意函数递归调用的条件。
【解答】k=13
为什么k=13呢? 详细解答一下 谢谢 展开
{
switch(g)
{
Case 0: return 0;
case 1:
case 2: return 1;
}
return(fib(g-1)+fib(g-2));
}
main()
{
long k;
k=fib(7);
printf("k=%ld\n",k);
}
【提示】注意函数递归调用的条件。
【解答】k=13
为什么k=13呢? 详细解答一下 谢谢 展开
3个回答
展开全部
无聊的人出的无聊的题目。
手工演算一次,找出规律(或者从判断条件及运算推演出规律)不就行了。
重复计算不就是计算机的强项吗?快、不会出错、同样的条件肯定能得到同样结果。
这题目到底考核什么能力呢?算法设计能力还是代码分析能力?还是只是为了学会用递归?
手工演算一次,找出规律(或者从判断条件及运算推演出规律)不就行了。
重复计算不就是计算机的强项吗?快、不会出错、同样的条件肯定能得到同样结果。
这题目到底考核什么能力呢?算法设计能力还是代码分析能力?还是只是为了学会用递归?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数递归调用:fib(7)=fib(6)+fib(5);然后再调用fib函数,求出fib(6)=fib(5)+fib(4),fib(5)=fib(4)+fib(3);以此类推,最后求出fib(1),fib(2)的值,就可以算出fib(3),fib(4),直到fib(7);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询