使用python实现斐波那契数列
时间: 2023-10-23 07:29:02 浏览: 55
可以使用递归或循环的方式实现斐波那契数列。
使用递归实现:
```python
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
```
使用循环实现:
```python
def fib(n):
if n <= 1:
return n
a, b = 0, 1
for i in range(n-1):
a, b = b, a + b
return b
```
使用生成器实现:
```python
def fib():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
```
以上三种方法都可以实现斐波那契数列,但是当 n 很大时,递归方式的效率会很低,因为会重复计算很多次。循环和生成器方式则可以避免这个问题。
相关问题
使用python做出斐波那契数列
以下是使用Python实现斐波那契数列的两种方法:
方法一:使用递归
```python
def fibonacci(n):
if n <= 1:
return n
else:
return (fibonacci(n-1) + fibonacci(n-2))
# 获取用户输入需要输出的斐波那契数列项数
n = int(input("请输入需要输出的斐波那契数列项数:"))
# 判断输入是否合法
if n <= 0:
print("请输入一个正整数。")
else:
print("斐波那契数列:")
for i in range(n):
print(fibonacci(i), end=" ")
```
方法二:使用循环
```python
# 获取用户输入需要输出的斐波那契数列项数
n = int(input("请输入需要输出的斐波那契数列项数:"))
# 初始化斐波那契数列的前两项值
fibonacci_1 = 0
fibonacci_2 = 1
# 输出斐波那契数列的前n项
if n <= 0:
print("请输入一个正整数。")
elif n == 1:
print("斐波那契数列:", fibonacci_1)
else:
print("斐波那契数列:", end=" ")
for i in range(n):
print(fibonacci_1, end=" ")
fibonacci_3 = fibonacci_1 + fibonacci_2
fibonacci_1 = fibonacci_2
fibonacci_2 = fibonacci_3
```
python实现斐波那契数列
斐波那契数列是一个数列,起始两项为0和1,之后每一项都等于前两项之和。即:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
以下是Python实现斐波那契数列的几种方法:
1. 利用循环实现:
```python
def fibonacci(n):
a, b = 0, 1
for i in range(n):
a, b = b, a + b
return a
```
2. 利用递归实现:
```python
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
```
3. 利用生成器实现:
```python
def fibonacci(n):
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a + b
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)