Xfxyxbb 发表于 2020-3-5 10:18:23

大神萌,实在不明白return语句的用法

小甲鱼这个递归的例子里
为什么是return1
这样函数的返回值不是1吗,为什么会是阶乘的结果
对return语句实在理解不是很清晰

qiuyouzhi 发表于 2020-3-5 10:20:52

只有在n==1的情况下才会返回1

qiuyouzhi 发表于 2020-3-5 10:22:44

https://fishc.com.cn/thread-159019-1-1.html

BWQ 发表于 2020-3-5 10:27:28

n=1的时候有两种情况。
一是一开始传入的n就是1,这时候1的阶乘就是1;
二是一开始传入的不是1,返回n*factorial(n-1),n-1等于1的时候,就可以退出了
举个例子:
计算3!,一开始返回3*factorial(2),这时候再计算factorial(2) = 2*factorial(1),factorial(1)=1,退出递归,最后的结果就是3*2*1。

zltzlt 发表于 2020-3-5 11:02:24

factorial(5)
factorial(4) * 5
factorial(3) * 4 * 5
factorial(2) * 3 * 4 * 5
factorial(1) * 2 * 3 * 4 * 5
1 * 2 * 3 * 4 * 5

121786404 发表于 2020-3-5 11:20:29

页: [1]
查看完整版本: 大神萌,实在不明白return语句的用法