首页新闻找找看学习计划

递归函数调用理解

0
[待解决问题]

函数递归,求f(2, 3)=            

int f(int x, int y)

{

if(x==0)  return y+2;

if(y==0)  return f(x-1, 1);

return f(x-1, f(x, y-1));

}

A,4   B,16  C, 31  D,61

怎么理解?答案D

小猩的主页 小猩 | 菜鸟二级 | 园豆:202
提问于:2014-10-21 21:19
< >
分享
所有回答(2)
0

转换成数学公式就好理解了。

519740105 | 园豆:5810 (大侠五级) | 2014-10-22 08:46
0

太多了写不下了。

 

在F的作用下,F(X前一个数,F(本身,Y前一个数))
=>f(2,3)
=>f(2-1,f(2,3-1))
=>f(1,f(2,2))
=>f(1,f(2-1,f(2,2-1)))
=>f(1,f(1,f(2,1)))
=>f(1,f(1,f(2,1-1)))
=>f(1,f(1,f(2,0)))
=>f(1,f(1,f(2-1,1)))
=>f(1,f(1,f(1,1))))
=>f(1,f(1,f(1-1,f(1,1-1))))
=>f(1,f(1,f(0,f(1,0))))
=>f(1,f(1,f(1,0)+2))
=>f(1,f(1,f(1-1,1)+2))
=>f(1,f(1,f(0,1)+2))
=>f(1,f(1,2+2)))
=>f(1,f(1,4))
=>f(1,f(1-1,f(1,4-1)))
=>f(1,f(0,f(1,3))))
=>f(1,f(1,3)+2))
=>f(1,f(1-1,f(1,3-2)+2))

田麦成 | 园豆:1982 (小虾三级) | 2014-10-22 11:20

谢谢你的回答,但是太复杂了。我还是不能够理解这个调用过程。

支持(0) 反对(0) 小猩 | 园豆:202 (菜鸟二级) | 2014-10-22 15:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册