用循环和递归算法求斐波那契额数列的前 10 项。
时间: 2024-05-10 14:14:25 浏览: 285
我们知道斐波那契数列的定义是:第1项和第2项都是1,从第3项开始,每一项是前两项的和。因此,斐波那契数列的前10项分别为:1,1,2,3,5,8,13,21,34,55。
下面是用循环和递归算法分别实现斐波那契数列的前10项:
1. 循环算法
```python
# 循环算法实现斐波那契数列的前10项
a, b = 1, 1
for i in range(10):
print(a, end=' ')
a, b = b, a+b
```
输出结果为:1 1 2 3 5 8 13 21 34 55
2. 递归算法
```python
# 递归算法实现斐波那契数列的前10项
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
for i in range(1, 11):
print(fibonacci(i), end=' ')
```
输出结果为:1 1 2 3 5 8 13 21 34 55
需要注意的是,递归算法的时间复杂度较高,因此在实际应用中可能不太适用。
相关问题
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。
阅读全文