斐波那契数列

斐波那契数列: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
相关推荐
却道天凉_好个秋2 分钟前
Tensorflow数据增强(一):图片的导入与显示
人工智能·python·tensorflow
多多*4 分钟前
计算机网络相关 讲一下rpc与传统http的区别
java·开发语言·网络·jvm·c#
小旭95278 分钟前
【Java 基础】IO 流 全面详解
java·开发语言
吃吃喝喝小朋友12 分钟前
JavaScript事件
开发语言·前端·javascript
ONExiaobaijs14 分钟前
Java jdk运行库合集
java·开发语言·python
wangjialelele15 分钟前
二刷C语言后,一万字整理细碎知识点
c语言·开发语言·数据结构·c++·算法·cpp
Pyeako16 分钟前
深度学习--PyTorch框架&优化器&激活函数
人工智能·pytorch·python·深度学习·优化器·激活函数·梯度爆炸与消失
mjhcsp18 分钟前
P3145 [USACO16OPEN] Splitting the Field G(题解)
开发语言·c++·算法
rit843249922 分钟前
UVE算法提取光谱特征波长的MATLAB实现与应用
开发语言·算法·matlab
Knight_AL25 分钟前
一文讲透 Java 中transient的用处(结合 Flink 理解)
java·python·flink