前言

本次讲解如何用Python中的递归和迭代来实现斐波那契数列。斐波那契数列的代码可谓是基本要求,无论是JAVA还是Python,几乎都是用斐波那契数列来讲解递归的。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是斐波那契数列?

斐波那契数列:0,1,1,2,3,5,8,13,21,34…,这个数列从第3项开始,每一项都等于前两项之和

二、斐波那契数列的实现

1.迭代实现

def fab(n):
    a1 = 1
    a2 = 1
    a3 = 1

    if n < 1:
        print("输入错误")
        return -1

    while (n - 2) > 0:
        a3 = a1 + a2
        a1 = a2
        a2 = a3
        n -= 1

    return a3


# 迭代实现

if __name__ == '__main__':
    result = fab(int(input("请输入月份:")))
    if result != -1:
        print("一共有%d对兔子" % result)

2.递归实现

def fab(n):
    if n < 1:
        print("输入错误")
        return -1
    if n == 1 or n== 2:
        return 1
    else:
        return fab(n-1)+fab(n-2)


if __name__ == '__main__':
    result = fab(int(input("请输入月份:")))
    if result != -1:
        print("一共有%d对小兔子" % result)

其实两者很容易比较出来,从代码长度来看,递归的长度更短,也更容易理解,但递归也是有缺陷的,当月份大于一定的数值后,递归算法的运算速度会比迭代算法的运算速度更慢,而且更占CPU


总结

递归算法在一定程度上而言,更简单,更快速,但并不是适用于所有的情况,有些情况下贸然使用递归只会适得其反。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐