请分别用迭代方法、递归方法和列表方法输出斐波纳契数列前30项
时间: 2024-05-01 18:18:50 浏览: 72
迭代方法:
```python
def fib_iter(n):
a, b = 0, 1
for i in range(n):
a, b = b, a + b
return a
for i in range(30):
print(fib_iter(i))
```
递归方法:
```python
def fib_recursive(n):
if n <= 1:
return n
else:
return fib_recursive(n-1) + fib_recursive(n-2)
for i in range(30):
print(fib_recursive(i))
```
列表方法:
```python
def fib_list(n):
fib = [0, 1]
for i in range(2, n+1):
fib.append(fib[i-1] + fib[i-2])
return fib
print(fib_list(30))
```
注意:以上代码是用 Python 编写的。
相关问题
生成斐波纳契数列前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)
```
斐波纳契数列 Ipython
斐波那契数列是一个经典的数学序列,它的特点是每个数字都是前两个数字的和,通常从0和1开始。例如:0, 1, 1, 2, 3, 5, 8, 13, 21, ...以此类推。在Python中,特别是使用Ipython(Interactive Python shell),我们可以轻松地生成这个数列。你可以通过循环或递归的方式来实现。
下面是一种简单的使用循环生成斐波那契数列的例子:
```python
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
# 使用Ipython打印前几个斐波那契数
for i in fibonacci(10): # 打印前10个数
print(i)
```
在这个例子中,`yield`关键字用于生成器函数,使得每次迭代返回当前的斐波那契数,而不是一次性返回整个列表。
如果你想直接获取前n个斐波那契数作为列表,可以稍微修改一下代码:
```python
def fibonacci_list(n):
fib_sequence = [0, 1]
while len(fib_sequence) < n:
fib_sequence.append(fib_sequence[-1] + fib_sequence[-2])
return fib_sequence[:n]
fibonacci_list(10)
```
阅读全文