斐波那契数列

斐波那契数列:0,1,1,2,3,5,8,13,...,求该数列第n项数字。

  • 数列前两个数字 f(1)=0,f(2)=1
  • 数列的每个数字是前两个数字之和

以下是两种不同的方法求第n项数字:循环迭代、递归

python 复制代码
# 斐波那契数列:0,1,1,2,3,5,8,13,......,求该数列第n项数字

# 循环迭代
def fib(n: int) -> tuple:
    """
    斐波那契数列:循环
    :param n: 项数
    :return:
    """
    n1, n2 = 0, 1
    n_list = [n1, n2]
    for item in range(n - 2):
        temp = n2
        n2 = n1 + n2
        n1 = temp
        n_list.append(n2)

    return n2, n_list


# 递归
def fib_plus(n: int) -> int:
    """
    递归
    :param n:
    :return:
    """
    # 终止条件
    if n == 1 or n == 2:
        return n - 1
    # 递归调用
    result = fib_plus(n - 1) + fib_plus(n - 2)
    return result


if __name__ == '__main__':
    num = fib(10)
    print(num)  # (34, [0, 1, 1, 2, 3, 5, 8, 13, 21, 34])

    num = fib_plus(10)
    print(num)   # 34
相关推荐
pride.li1 分钟前
第12章 Python 教程-流程控制:循环结构
linux·服务器·python·算法
SDWAN_Cheap19 分钟前
深度解析什么是CDN加速:从原理到实践的技术拆解
开发语言·cdn加速
鬼手点金20 分钟前
模型即 Agent:当模型本身成为产品
开发语言·前端·人工智能·python·机器学习
田里的水稻25 分钟前
PyTorch-Dataset\DataLoader数据加载
人工智能·pytorch·python
卷无止境31 分钟前
Python 3.14 自由线程:拆掉 GIL 之后,我们到底得到了什么
后端·python
染指111033 分钟前
147.Agent-LangGraph归并函数
开发语言·人工智能·python·langchain·agents
Elastic 中国社区官方博客39 分钟前
教程:监控 Java 应用
java·开发语言·数据库·elasticsearch·搜索引擎·全文检索
桌管小李40 分钟前
内网终端安全再升级|迪康端点安全 2609 版本四大新功能解读
大数据·windows·安全·macos·网络安全
ShineWinsu1 小时前
对于JavaScript:初识JavaScript以及输入输出
java·开发语言·前端·javascript·css·面试·html
小小安于乱1 小时前
linux中java的springboot程序获取IP地址间歇性10秒卡顿问题
java·开发语言