1 回答
TA贡献2条经验 获得超0个赞
我的理解如下:(如有错误请谅解,并告知)
一层执行到fun(6-1,&f1);停止,执行二层fun(6-1,&f1),也就是fun(5,&f1)。
二层执行到fun(5-1,&f1);停止,执行三层fun(4,&f1);
三层执行到fun(4-1,&f1);停止,执行四层fun(3,&f1);
四层执行到fun(3-1,&f1);停止,执行五层fun(2,&f1);
五层执行到if(n==1||n==2) f1=1;返回到四层fun(3-1,&f1)的位置;
四层执行fun(3-2,&f2),返回f2=1;执行*s=f1+f2;s=2,即f1=2返回到第三层fun(4-1,&f1)的位置;
三层执行fun(4-2,&f2),返回f2=1;执行*s=f1+f2;s=3,即f1=3返回到第二层fun(5-1,&f1)的位置;
二层执行fun(5-2,&f2),执行fun(3-1,&f1),返回f1=1,执行fun(3-2,&f2)返回f2=1;执行*s=f1+f2;s=2,即返回f2=2,执行*s=f1+f2;s=5,即f1=5返回到第一层fun(6-1,&f1)的位置;
一层执行fun(6-2,&f2),执行fun(4-1,&f1),执行fun(3-1,&f1),返回f1=1;执行fun(3-2,&f2),返回f2=1,执行*s=f1+f2;s=2;返回f1=2;执行fun(4-2,&f2),返回f2=1;再执行fun(4-2,&f2)后的*s=f1+f2;s=3;即返回f2=3;最后执行fun(6-2,&f2)后的*s=f1+f2;s=8;
- 1 回答
- 0 关注
- 1062 浏览
添加回答
举报