猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
原题如下:当N=5时,下列函数的返回值是:
A.5
B7
C8
D10
int foo(int n){
if(n <= 2)
return n:
return foo(n-1)+f(n-2);
}
当年话下
浏览 113
回答 3
3回答
暮色呼如
这是个递归函数。n=5时返回值为8答案选C//n的变化 //第一次 return foo(4)+foo(3); //第二次 return foo(3)+foo(2); //因为foo(3)大于2所以还要调用,但后面那个就foo(2)直接返回2,知道foo(2)就返回2 //所以结果=2+2+2+2=8
0
0
0
翻翻过去那场雪
这个答案是选C的。递归都是完全可以转化为数学里面的数列来做的,他们都是有一定规律的。你仔细看看,就会发现foo(n)= foo(n-1)+f(n-2)。而当n=1的时候,foo(1)=1当n=2的时候,foo(2)=2所以很容易就推出:foo(3)=foo(2)+foo(1)=2+1=3foo(4)=foo(3)+foo(2)=3+2=5foo(5)=foo(4)+foo(3)=5+3=8所以答案选择C。满意请采纳!
0
0
0
白衣非少年
这是一个 类似于 斐波那契数列 的数列当 n <= 2 时,foo(n) = n当 n > 2 时,foo(n) = foo(n - 1) + foo(n - 2)所以:foo(1) = 1;foo(2) = 2;; foo(3) = foo(2) + foo(1) = 3;foo(4) = foo(3) + foo(2) = 5;foo(5) = foo(4) + foo(3) = 8;后面的以此类推
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续