当前位置:首页>python>春招学考社团_python专题_zt3_斐波那契数列.py

春招学考社团_python专题_zt3_斐波那契数列.py

  • 2026-09-21 22:08:05
春招学考社团_python专题_zt3_斐波那契数列.py

专题知识点:斐波那契数列

(Fibonacci sequence),又称黄金分割数列,由意大利数学家莱昂纳多.斐波那契(Leonardo Fibonacci)在13世纪提出。

该数列具有如下特点:

初始值:数列的前两项通常定义为 0 和 1,即 F(0) = 0,F(1) = 1

递推关系:从第三项开始,每一项都等于前两项之和,用数学公式表示为 F(n)=F(n - 1)+F(n - 2),比如:0 1 1 2 3 5 8 13 21 34……等等。

方法1:使用递归实现斐波那契数列

# 递归核心思想:把问题拆解为更小的相同问题,直到触达边界条件后回溯计算def fib1(n):    # 边界条件1:第0项的值为0    if n == 0:        return 0    # 边界条件2:第1项的值为1    elif n == 1:        return 1    # 递归调用:第n项 = 第n-1项 + 第n-2项(递推关系)    return fib1(n-1) + fib1(n-2)# 测试递归方法:计算第6项的斐波那契数n = 6result  = fib1(n)print("第",n,"项的值为:",result)  # 输出:第 6 项的值为:8

方法2:不使用递归(迭代法)实现

deffib2(n):# 初始化循环计数器    i = 0# a表示当前项,b表示下一项;初始值对应F(0)=0,F(1)=1    a, b = 0, 1# 循环n次,逐步计算每一项的值while i < n:# 注释掉的代码:如果需要打印每一项,可取消注释# print(a,end=" ")# 核心逻辑:更新a和b的值# a变为原来的b(下一项),b变为原来的a+b(新的下一项)        a, b = b, a + b# 计数器加1,推进循环        i += 1# 循环结束后,a即为第n项的斐波那契数return a# 交互式输入:让用户输入要计算的项数n = int(input("请输入n的值:"))# 调用迭代方法并输出结果print("斐波那契数列的第"+str(n)+"项为:",fib2(n))# 输出:如果输入6,则输出 斐波那契数列的前8项为: 21

知识拓展:使用列表来存储

def get_fib_n(n):    if n < 0:        return "输入错误"    fib = [0, 1]    for i in range(2, n+1):        fib.append(fib[i-1] + fib[i-2])    return fib[n]# 测试:获取第6项的值print("第6项的值:", get_fib_n(6))  # 输出:第6项的值:8

知识总结:

列表实现斐波那契数列的核心是存储每一项结果,通过索引调用前两项计算当前项,逻辑清晰且便于复用数列数据。

相比递归,列表法无重复计算,效率和迭代法一致;

相比单纯的迭代法,列表法能保留完整数列,适合需要使用多项数据的场景。

核心步骤:初始化列表→添加初始项→循环计算并追加后续项→返回列表(或指定项)。

最新文章

随机文章