如何为5n创建递归python函数?

时间:2015-12-06 06:35:38

标签: python

我只得到答案。我不明白递归函数是如何工作的。我真的很感激任何帮助。而且,如果有人可以解释什么是基数和递归调用,那就太好了。

def multi(n):
     if n==1:
         return 4

2 个答案:

答案 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