分别用迭代方法,递归方法和列表方法输出斐波纳契数列前30项
时间: 2023-05-23 11:01:24 浏览: 93
好的,以下是三种不同的方式来输出斐波纳契数列前30项:
1. 迭代方法:
```python
a, b = 0, 1
for i in range(30):
print(a)
a, b = b, a + b
```
2. 递归方法:
```python
def fib(n):
if n <= 1:
return n
else:
return fib(n-1) + fib(n-2)
for i in range(30):
print(fib(i))
```
3. 列表方法:
```python
fib = [0, 1]
for i in range(2, 30):
fib.append(fib[-1] + fib[-2])
print(fib)
```
希望这些代码可以帮到您!
相关问题
生成斐波纳契数列前n项python
在Python中,我们可以使用循环或者递归的方式来生成斐波那契数列的前n项。以下是两种常见的实现方法:
**1. 使用循环(迭代法)**:
```python
def fibonacci_iterative(n):
fib_sequence = [0, 1] # 初始化序列
while len(fib_sequence) < n:
next_number = fib_sequence[-1] + fib_sequence[-2] # 计算下一项
fib_sequence.append(next_number)
return fib_sequence[:n]
# 示例:生成前10项斐波那契数列
n = 10
fibonacci_numbers = fibonacci_iterative(n)
```
**2. 使用递归(递归法,虽然效率较低)**:
```python
def fibonacci_recursive(n, a=0, b=1):
if n <= 0:
return []
elif n == 1:
return [a]
else:
result = fibonacci_recursive(n - 1, b, a + b)
result.insert(0, a)
return result
# 示例:生成前10项斐波那契数列
n = 10
fibonacci_numbers = fibonacci_recursive(n)
```
斐波纳契数列 python
斐波纳契数列(Fibonacci sequence)是一个经典的数学问题,它由一系列数字组成,其中每个数字都是前两个数字之和。斐波纳契数列通常从0和1开始,后续的每个数字都是前两个数字的和。
在Python中,可以通过多种方式生成斐波纳契数列。以下是几种常见的方法:
1. **迭代法**:
```python
def fibonacci(n):
sequence = []
a, b = 0, 1
for _ in range(n):
sequence.append(a)
a, b = b, a + b
return sequence
# 示例
print(fibonacci(10))
```
2. **递归法**:
```python
def fibonacci_recursive(n):
if n <= 1:
return n
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
# 示例
for i in range(10):
print(fibonacci_recursive(i), end=" ")
```
3. **生成器**:
```python
def fibonacci_generator():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
# 示例
fib_gen = fibonacci_generator()
for _ in range(10):
print(next(fib_gen), end=" ")
```
这些方法都可以生成斐波纳契数列,但它们在效率和适用场景上有所不同。迭代法通常是最有效率的,而递归法在处理较大的n时会变得非常慢。生成器则适用于需要逐步生成数列的场景。
阅读全文