永发信息网

C语言编程问题

答案:6  悬赏:20  手机版
解决时间 2021-11-18 03:21
C语言编程问题
最佳答案
case 1:case 2:return 1;
当g=1或2时,返回1

return(fib(g-1)+fib(g-2));
递归调用

参数g值的变化:
7
6 5
5 4 4 3
4 3 3 2 3 2 2 1
3 2 2 1 2 1 1 2 1 1 1
2 11 1 1 1
1

再将1相加,得出结果
全部回答
这是递归,直到值为0和1为止。
g的值-1,然后调用fib函数;g的值-2,调用fib函数;两个结果相加,返回这个值
0,1,1,2,3,5,8....
斐波那契数列
这就是一个递归的过程.随便看一本书都有.三言两语也说不清.
long fib(int g)是个递归函数,
主函数调用k=fib(7);此时g是7,不满足switch分支结构的执行条件,就执行了return(fib(g-1)+fib(g-2));语句也即return(fib(6)+fib(5));
由于此时fib(6)和fib(5)此时还不是确切的数值,所以会再次调用fib()函数,执行fib(6),由于此时g=6,仍不满足switch分支结构的执行条件,就执行了return(fib(g-1)+fib(g-2));语句也即return(fib(5)+fib(4));由于此时fib(5)和fib(4)此时还不是确切的数值,所以会再次调用fib()函数,以此类推,直到调用fib(2)、fib(1)时返回1;或调用fib(0)时返回0;此时函数会将嵌套调用函数返回的数值相加,得到最终结果:13
递归调用
你可以这样想
int s;
s=fib(g-1)+fib(g-2);
return s;

case 1:case 2:return 1;
这个你可以把它列开
case 1:
case 2:
return 1;
因为switch语句里的case不加break就继续往下执行 所以当取1时执行case 1:执行case 1然后继续执行case 2
取2 的话就执行case 2
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
什么是食品检测中的残留溶剂
有以下_____行为之一的,对直接责任者和领导责
想知道:东莞市 从松山湖汽车客运站到广州南站
i have no money with me中的with什么意思
猫神的名字叫什么
浙江省衢州市衢江区庙前乡敬老院地址在什么地
碳还原氧化铁的化学方程式?
什么是油画的肌理效果
谷氨酰转肽酶高至170是什么情况
浙江省湖州市吴兴区杨家埠镇福利院地址在什么
浙江省湖州市吴兴区龙溪乡福利院地址在什么地
203×78≈ 估算是多少
梨树根熬水喝助产吗?
白字偏旁的字并组词
本来现在好了,生活趋于平静,我也丧失了喜欢
推荐资讯
开启CDRX6时总是弹出一个这样的窗口是怎么回
缝补衣服修改地址好找么,我有些事要过去,
625=5×5×5×5 公式是什么
请问这是干茯苓还是干铁棍淮山?
我想在长沙市区找一份兼职养活自己 没有什么
压条什么材质好
while(gets(c)!=EOF)
盘点淄博历史名人有哪些
阳光照明·装饰地址在什么地方,我要处理
16个园钢筋每米重量
求助艺术签名设计:王艺霖
剑桥英语学校(南京大道)地址在什么地方,想过
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?