第一种 n=0,那么函数返回33;
第二种 n=1,那么函数返回66;
第三种 n>1,那么函数返回fib(n-1)+fib(n-2)+fib(n-3),就是继续返回函数分别计算;
第四种 其他情况,即n<0的情况,那么函数返回森裂99。
根据提问,第三种情况比较特殊,假谈春敏如说n=含枝2的话,那么函数返回fib(1)+fib(0)+fib(-1),正好是所有情况全部覆盖了。
所以答案是A,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,然后结束将结果输出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)