1653| 3
|
这个递归函数老是出错,求帮助。另外不懂递归的机制,明明没有循环,为何能多次运算 |
5啊哈币
最佳答案错在你漏了3个分号,第6,20,23行
比如你要计算fac(3)
首先 f=3 > 1
所以fac(3) = fac(2) * 3
f = 2 > 1
fac(2) = fac(1) * 2
f = 1 == 1
fac(1) = 1
把上面的式子合并,有 fac(3) = 1*2*3
就是这样子实现的
从计算理论的角度来说,递归才是更本质的,循环只是递归的一种特例(尾递归)。一种计算机语言可以没有循环的语法特性,也能完成所有计算。
最后这个fac函数的实现不好,每次都要判断n是不是小于0,如果把这 ...
| ||
| ||
| ||