分别用迭代方法,递归方法和列表方法输出斐波纳契数列前30项
时间: 2023-05-23 15:01:24 浏览: 89
好的,以下是三种不同的方式来输出斐波纳契数列前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)
```
斐波纳契数列 II代码
斐波那契数列是一个非常经典的数列,其定义如下:第一项和第二项为1,第三项开始每一项都是前两项之和。斐波那契数列的前几项依次为:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
以下是斐波那契数列的 Python 代码:
```python
def fibonacci(n):
if n <= 0:
return None
if n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
```
这段代码使用递归的方式计算斐波那契数列的第n项。但是,这种方式计算速度很慢,因为存在大量重复计算。如果要高效计算斐波那契数列,需要使用迭代的方式。
以下是迭代版本的 Python 代码:
```python
def fibonacci(n):
if n <= 0:
return None
if n == 1 or n == 2:
return 1
a, b = 1, 1
for i in range(3, n+1):
c = a + b
a, b = b, c
return c
```
这段代码使用循环迭代的方式计算斐波那契数列的第n项。其时间复杂度为O(n),是一种高效的计算方式。
阅读全文