【发布时间】:2014-06-16 07:35:11
【问题描述】:
int j(int i) {
if (i==0) return 2;
return i*j(i-1);
}
调用 j(4) 得到 48。
感觉自己看懂了代码,但不知道48是怎么实现的。
我是这样理解的,
int j(4){
4 不等于 0,所以它不会返回 2
4*j(i-1) = 4*j(3)
然后我回到顶部并重复
3*j(2)
2*j(1)
1*j(0)
现在我返回 2。
这是我迷路的地方,我不太确定在这一步之后要做什么以及 j(4) 的答案是 48。
【问题讨论】:
-
那么您期望 4 x 3 x 2 x 1 x 2 是什么?
-
纸+铅笔+努力=理解
-
Stepping + through + with + a + debugger = 启蒙
-
@DavidWallace 谢谢你超越我... :)