要求给出递推法和递归法两种代码。【将递推法和递归法封装成两个函数】
时间: 2024-10-22 08:24:50 浏览: 31
C++函数、递推、递归.ppt
递推法(也称迭代法)是通过自底向上的方式解决问题,通过已知结果逐步推导出目标结果。而递归法则是一种自顶向下的解决问题方法,它将大问题分解为若干个小问题,直到问题简化到可以直接求解为止。
以下是使用Python分别实现递推法和递归法计算斐波那契数列的例子:
**递推法(Fibonacci 递推公式):**
```python
def fibonacci_iterative(n):
if n <= 0:
return "Invalid input"
elif n == 1 or n == 2:
return 1
else:
a, b = 1, 1
for _ in range(3, n+1):
a, b = b, a + b
return b
# 示例
fib_n = fibonacci_iterative(9) # 第9个斐波那契数
```
**递归法(Fibonacci 递归定义):**
```python
def fibonacci_recursive(n, a=0, b=1):
if n <= 0:
return "Invalid input"
elif n == 1:
return a
else:
return fibonacci_recursive(n-1, b, a+b)
# 示例
fib_n_recursion = fibonacci_recursive(9) # 第9个斐波那契数
```
阅读全文