# -*- coding: utf-8 -*-
# @Time : 2025/4/4 16:05
# @Author : write1994
# @File : lear_Fibonacci_sequence.py
# @Desc : 斐波那契数列
'''
已知一个数列:1、1、2、3、5、8、13、。。。。的规律为从 3 开始的每一项都
等于其前两项的和,这是斐波那契数列。求满足规律的 100 以内的所以数据
'''
a = 0
b = 1
while b < 100:
print(b, end=",")
a, b = b, a + b
# 方法一:使用递归函数
def fibonacci_recursive(n):
if n <= 1:
return n
else:
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)
# 打印前 10 个斐波那契数
for i in range(10):
print(fibonacci_recursive(i))
# 方法二:使用循环
def fibonacci_loop(n):
if n <= 1:
return n
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
# 打印前 10 个斐波那契数
for i in range(10):
print(fibonacci_loop(i))
def fibonacci_generator():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
# 方法三:使用生成器
# 打印前 10 个斐波那契数
fib = fibonacci_generator()
for _ in range(10):
print(next(fib))
07-13
1617

被折叠的 条评论
为什么被折叠?



