使用python实现斐波那契数列
时间: 2023-10-23 14:29:02 浏览: 119
可以使用递归或循环的方式实现斐波那契数列。
使用递归实现:
```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实现斐波那契数列判断
### 判断一个数是否为斐波那契数
为了判断给定的整数 `num` 是否属于斐波那契数列,可以利用数学特性:如果存在某个正整数 `k` 使得 `(5 * num^2 + 4)` 或者 `(5 * num^2 - 4)` 是完全平方数,则该数是斐波那契数。
以下是具体的 Python 实现方法:
```python
import math
def is_perfect_square(x):
s = int(math.sqrt(x))
return s * s == x
def is_fibonacci(num):
test1 = 5 * num * num + 4
test2 = 5 * num * num - 4
return is_perfect_square(test1) or is_perfect_square(test2)
number_to_check = int(input("请输入要验证的数字: "))
if is_fibonacci(number_to_check):
print(f"{number_to_check} 属于斐波那契数列")
else:
print(f"{number_to_check} 不属于斐波那契数列")
```
上述代码通过检测两个表达式的值是否为完全平方数来决定输入数值是否位于斐波那契序列之中[^4]。
阅读全文
相关推荐















