用循环和递归算法求斐波那契额数列的前 10 项
时间: 2024-05-05 13:21:14 浏览: 147
斐波那契数列是指数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...,其中每一项都是前两项的和。
以下是使用循环和递归算法分别求斐波那契数列前 10 项的示例代码:
使用循环算法:
```python
def fibonacci(n):
# 初始化前两个数
a, b = 1, 1
# 输出前两个数
print(a)
print(b)
# 循环计算并输出后面的数
for i in range(2, n):
c = a + b
print(c)
a, b = b, c
# 输出前 10 项斐波那契数列
fibonacci(10)
```
使用递归算法:
```python
def fibonacci(n):
# 递归结束条件
if n == 1 or n == 2:
return 1
# 递归计算并返回结果
return fibonacci(n-1) + fibonacci(n-2)
# 输出前 10 项斐波那契数列
for i in range(1, 11):
print(fibonacci(i))
```
两种算法的时间复杂度都是 O(n),但递归算法的空间复杂度会更高,因为需要多次调用函数。
相关问题
python用递归算法求斐波那契数列的前40项
好的,这是 Python 代码实现:
```python
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
for i in range(1, 41):
print(fibonacci(i), end=' ')
```
这段代码中,`fibonacci(n)` 函数使用递归算法求解斐波那契数列第 n 项的值。当 n 等于 1 或 2 时,返回 1;否则返回前两项的和。然后使用 `for` 循环遍历前 40 项并输出结果。
递归求斐波那契额数列的前10项
递归是一种常见的编程技巧,它允许函数调用自身来解决问题。斐波那契数列是一个非常经典的递归问题示例。斐波那契数列的前两项定义为0和1,之后的每一项都是前两项的和。递归求斐波那契数列的前10项的算法可以这样表示:
1. 基线条件:如果项数n等于0,返回0;如果项数n等于1,返回1。
2. 递归步骤:如果项数n大于1,那么当前项的值是前一项(n-1)和前前一项(n-2)的和。
以下是递归函数的伪代码:
```
function fibonacci(n):
if n == 0:
return 0
else if n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
```
使用上述递归方法,我们可以计算出斐波那契数列的前10项:
```
fibonacci(0) -> 0
fibonacci(1) -> 1
fibonacci(2) -> fibonacci(1) + fibonacci(0) -> 1 + 0 = 1
fibonacci(3) -> fibonacci(2) + fibonacci(1) -> 1 + 1 = 2
fibonacci(4) -> fibonacci(3) + fibonacci(2) -> 2 + 1 = 3
fibonacci(5) -> fibonacci(4) + fibonacci(3) -> 3 + 2 = 5
fibonacci(6) -> fibonacci(5) + fibonacci(4) -> 5 + 3 = 8
fibonacci(7) -> fibonacci(6) + fibonacci(5) -> 8 + 5 = 13
fibonacci(8) -> fibonacci(7) + fibonacci(6) -> 13 + 8 = 21
fibonacci(9) -> fibonacci(8) + fibonacci(7) -> 21 + 13 = 34
```
这样我们就得到了斐波那契数列的前10项:0, 1, 1, 2, 3, 5, 8, 13, 21, 34。
阅读全文