我只得到答案。我不明白递归函数是如何工作的。我真的很感激任何帮助。而且,如果有人可以解释什么是基数和递归调用,那就太好了。
def multi(n):
if n==1:
return 4
答案 0 :(得分:0)
递归函数是一个自我调用的函数。 例如:
EditText
为了防止无限递归,你必须定义一个函数不会自我调用的情况。(在我们的例子中,当n == 1时,它在else语句中)。
答案 1 :(得分:0)
请尝试以下代码:
def multi(n):
return (5 + multi(n-1)) if n>0 else 0;
这个函数是5n,这里的解释是:
when n = 1 the call is like this :
output : 5 + multi(0) --> multi(0) = 0, so 5 + 0 = 5
这是这样的:
multi(3)
|
-- 5 + multi(2)
|
--- 5 + (5 + multi(1))
|
---- 5 + (5 + (5 + multi(0)))
|
----- 5 + 5 + 5 + 0
5n --> if n = 3 --> 5(3) = 15
output multi(3) = 15, as same as 5(3)=15.
5(3) = 5+5+5 = 15
5(2) = 5+5 = 10
in recursion, you'll do it like this:
5(0) = 0
5(1) = 5 + 0 = 5
5(2) = 5 + 5 + 0 = 10
...
5(n) = 5 + f(n-1), where f(0) = 0, so n must greater than 0. To prevent infinite loop.
Case for 5(3) :
1. 5(3) = 5 + f(2)
2. f(2) = 5 + f(1)
3. f(1) = 5 + f(0)
4. f(0) = 0
So, you will get 5(3) = 5 + (5 + (5 + 0)) = 15
希望这有助于您理解它:D