斐波那契数列用python
时间: 2023-11-19 18:56:13 浏览: 103
斐波那契数列可以用Python进行计算和输出。以下是三种不同的方法:
方法一:使用循环计算斐波那契数列的第n个数。
```python
def fib(n):
a, b = 1, 1
for i in range(n - 1):
a, b = b, a + b
return a
print(fib(10))
```
方法二:使用递归计算斐波那契数列的第n个数。
```python
def fib(n):
if (n == 1) or (n == 2):
return 1
return fib(n - 1) + fib(n - 2)
print(fib(15))
```
方法三:使用循环计算斐波那契数列的前n个数。
```python
def fib(n):
if (n == 1):
return [1]
if(n == 2):
return [1, 1]
fibs = [1, 1]
for i in range(2, n):
fibs.append(fibs[-1] + fibs[-2])
return fibs
print(fib(30))
```
相关问题
设计输出斐波那契数列的python
设计一个Python程序来输出斐波那契数列,你可以使用递归、循环或者生成器函数。这里是三种常见的实现方法:
1. **递归**(效率较低,适合教学)
```python
def fibonacci_recursive(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib_list = fibonacci_recursive(n - 1)
fib_list.append(fib_list[-1] + fib_list[-2])
return fib_list
n_terms = int(input("请输入要输出的项数:"))
print(fibonacci_recursive(n_terms))
```
2. **循环**(效率较高)
```python
def fibonacci_loop(n):
fib_sequence = [0, 1]
while len(fib_sequence) < n:
next_num = fib_sequence[-1] + fib_sequence[-2]
fib_sequence.append(next_num)
return fib_sequence[:n]
n_terms = int(input("请输入要输出的项数:"))
print(fibonacci_loop(n_terms))
```
3. **生成器函数**(内存高效)
```python
def fibonacci_generator(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
n_terms = int(input("请输入要输出的项数:"))
fib_gen = fibonacci_generator(n_terms)
print([next(fib_gen) for _ in range(n_terms)])
```
斐波那契数列用python语言
斐波那契数列是一个经典的数学序列,其中每个数字是前两个数字之和,通常开始于0和1。在Python中,我们可以使用循环、递归或者生成器来实现这个序列。以下是三种常见的方法:
1. **循环实现**:
```python
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
# 使用循环打印前10个斐波那契数
for i in fibonacci(10):
print(i)
```
2. **递归实现**:
```python
def fibonacci_recursive(n):
if n <= 0:
return []
elif n == 1:
return
elif n == 2:
return [0, 1]
else:
fib_sequence = fibonacci_recursive(n - 1)
fib_sequence.append(fib_sequence[-1] + fib_sequence[-2])
return fib_sequence
# 打印前10个递归斐波那契数
fibonacci_sequence = fibonacci_recursive(10)
for i in fibonacci_sequence:
print(i)
```
3. **生成器实现**:
```python
def fibonacci_generator():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
# 由于无限序列,需要在实际使用时中断
# 使用生成器打印前10个斐波那契数
for i in range(10):
print(next(fibonacci_generator()))
```
阅读全文
相关推荐
















