斐波那契数列

斐波那契数列: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
相关推荐
叫我辉哥e12 小时前
### 技术文章大纲:C语言造轮子大赛
c语言·开发语言
Hgfdsaqwr3 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
guygg884 小时前
NOMA功率分配与64 QAM调制中的SIC的MATLAB仿真
开发语言·matlab
开发者小天4 小时前
python中For Loop的用法
java·服务器·python
flushmeteor4 小时前
JDK源码-基础类-String
java·开发语言
老百姓懂点AI4 小时前
[RAG实战] 向量数据库选型与优化:智能体来了(西南总部)AI agent指挥官的长短期记忆架构设计
python
u0109272715 小时前
C++中的策略模式变体
开发语言·c++·算法
雨季6665 小时前
构建 OpenHarmony 简易文字行数统计器:用字符串分割实现纯文本结构感知
开发语言·前端·javascript·flutter·ui·dart
雨季6665 小时前
Flutter 三端应用实战:OpenHarmony 简易倒序文本查看器开发指南
开发语言·javascript·flutter·ui
进击的小头6 小时前
行为型模式:策略模式的C语言实战指南
c语言·开发语言·策略模式