BrightXiong 发表于 2023-3-12 17:24:34

函数-Ⅸ

>>> # 递归就是就是函数调用自身的过程
>>> 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
>>>

match123_xbd 发表于 2023-3-31 16:51:47

干货
页: [1]
查看完整版本: 函数-Ⅸ