函数-Ⅸ
>>> # 递归就是就是函数调用自身的过程>>> def func(i):
... if i >0:
... print(" I love you ")
... i -= 1
... func(i)
...
>>> func(3)
I love you
I love you
I love you
>>> func(2)
I love you
I love you
>>> # 要让递归正常工作,必须要有一个结束条件,并且每次调用都将向着这个结束条件推进。
>>> >>>
>>> def factIter(n):
... result = n
... for i in range(1, n):
... result *= i
... return result
...
>>> factIter(2)
2
>>> factIter(3)
6
>>> factIter(5)
120
>>> def factRecur(n):
... if n == 1:
... return 1
... else:
... return n * factRecur(n - 1)
...
>>> factRecur(3)
6
>>> factRecur(35)
10333147966386144929666651337523200000000
>>> factRecur(5)
120
>>> # 使用递归求斐波那契数列
>>> # 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。
>>> # 1、 1、 2、 3、 5、 8、 13、 21、 34、 55、 89、 144、 233、 377、 610、 987……
>>> def fibIter(n):
... a = 1
... b = 1
... c = 1
... while n > 2:
... c = a + b
... a = b
... b = c
... n -= 1
... return c
...
>>> fibIter(12)
2
>>> def fibIter(n):
... a = 1
... b = 1
... c = 1
... while n > 2:
... c = a + b
... a = b
... b = c
... n -= 1
... return c
...
>>> fibIter(12)
144
>>> # 如果使用递归来实现,代码就是这样的:
>>> def fibRecur(n):
... if n == 1 or n == 2:
... return 1
... else:
... return fibRecur(n - 1) + fibRecur(n - 2)
...
>>> fibRecur(12)
144
>>> 干货
页:
[1]