为什么输出是13

念安_801 |浏览1052次
收藏|2022/04/09 19:03

满意回答

2022/04/09 19:15

要输出13,你的程序中case 2:return 2;要改为case 2:return 1;程序中的函数fun1(n)是用来求斐波那契数列第n项的值,通过递归调用fun1(n)=fun1(n-1)+fun1(n-2) (n>2)来实现的。具体分析如下:fun1(0)=0;fun1(1)=1;fun1(2)=2;fun1(n)=fun1(n-1)+fun1(n-2) (n>2),则有fun1(3)=fun1(2)+fun1(1)=2fun1(4)=fun1(3)+fun1(2)=3fun1(5)=fun1(4)+fun1(3)=5fun1(6)=fun1(5)+fun1(4)=8fun1(7)=fun1(6)+fun1(5)=13main函数中调用的s=fun1(7);所以输出13。

ygl990951

其他回答(1)
  • 结果肯定不是13而是21这个是典型的递归(函数)程序函数表达式为f(n)=f(n-1)+f(n-2); //f(0)=0,f(1)=1,f(2)=2结果分析我们反算下f(3)=f(2)+f(1)=2+1=3f(4)=f(3)+f(2)=3+2=5f(5)=f(4)+f(3)=5+3=8f(6)=f(5)+f(4)=8+5=13f(7)=f(6)+f(5)=13+8=21另外,这个数学上称斐波那契数列,只要是C教程上都会提到的,它的值就是0、1、1、2、3、5、8、13、21、34、……
    回答于 2022/04/09 19:42
0人关注该问题
+1

 加载中...