第1个回答 2012-07-02
return当然是返回到它调用的哪个地方啊。比如fun(10)调用时走到fun函数,里面的第一个return就是回到main里的fun()那块去,因为是递归,你可以看到k在不断减小当为0时return就返回到fun(0)而1*fun(0)的结果又返回到fun(1),将2*fun(1)返回到fun(2)....一直这样直到将10*fun(9)的结果返回到main里面的fun(10),这样懂了吗?(打字很幸苦)望采纳!
第2个回答 2012-07-02
这应该是求阶乘的程序吧
第一个return是递归展开 可以理解为 K!=K*(K-1)!
第二个return是出口条件 即当K=0时。K!=1
这么说不知道你能理解吗
第3个回答 2012-07-02
fun(10)
k 是10 大于0 调用fun(9)
k 是9 大于0 调用fun(8)
k 是8 大于0 调用fun(7)
k 是7 大于0 调用fun(6)
....................
k 是2 大于0 调用fun(1)
k 是1 大于0 调用fun(0)
0>0不成立了 之前都是 if分支 现在走 else if 分支
k==0 return 返回1
回到 fun(1)里面 调用fun(0) 的位置 k=1 ,fun(k-1)=fun(1-1)=fun(0)=1
相乘 1*1 return给 fun(2)里调用fun(1)的位置
同意 2*fun(2-1)=2*1
它又return 回到fun(3) 调用fun(2) 的地方.....
所以 是递归算阶乘....................本回答被提问者和网友采纳
第4个回答 2012-07-02
fun递归求阶乘。
如果k>0则返回 k * fun(k-1) //阶乘递归式
当k == 0 返回 1