斐波那契数

斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 01 开始,后面的每一项数字都是前面两项数字的和。也就是:

复制代码
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1

给定 n ,请计算 F(n)

cpp 复制代码
// 计算斐波那契数列的第n项
int fib(int n) {
    // 边界条件:当n为0或1时,直接返回n(斐波那契数列定义)
    if(n < 2)
        return n;
    
    // 初始化循环变量i,从2开始(因为n=0和n=1已直接处理)
    int i = 2;
    // 初始化前两项的值:
    // a表示第i-2项,初始为fib(0) = 0
    // b表示第i-1项,初始为fib(1) = 1
    int a = 0, b = 1;
    
    // 循环计算从第2项到第n项的斐波那契数
    // 循环条件:当i小于等于n时继续(i < n + 1等价于i <= n)
    while(i < n + 1) {
        // 计算当前项:第i项 = 第i-2项 + 第i-1项
        int c = a + b;
        // 更新前两项:a变为原来的第i-1项(为下一轮计算做准备)
        a = b;
        // 更新前两项:b变为当前计算出的第i项(为下一轮计算做准备)
        b = c;
        // 循环变量自增,确保能计算到第n项
        i++;
    }
    
    // 循环结束后,b中存储的就是第n项的斐波那契数
    return b;
}
相关推荐
熬了夜的程序员1 天前
【LeetCode】83. 删除排序链表中的重复元素
算法·leetcode·链表
胖咕噜的稞达鸭1 天前
AVL树手撕,超详细图文详解
c语言·开发语言·数据结构·c++·算法·visual studio
熊猫钓鱼>_>1 天前
Rust语言特性深度解析:所有权、生命周期与模式匹配之我见
算法·rust·软件开发·函数·模式匹配·异步编程·质量工具
芒果量化1 天前
Optuna - 自动调参利器&python实例
开发语言·python·算法·机器学习
麦麦大数据1 天前
D025 摩托车推荐价格预测可视化系统|推荐算法|机器学习|预测算法|用户画像与数据分析
mysql·算法·机器学习·django·vue·推荐算法·价格预测
CoovallyAIHub1 天前
IDEA研究院发布Rex-Omni:3B参数MLLM重塑目标检测,零样本性能超越DINO
深度学习·算法·计算机视觉
豐儀麟阁贵1 天前
4.4数组的基本操作
java·开发语言·数据结构·算法
无限进步_1 天前
【C语言】在矩阵中高效查找数字的算法解析
c语言·开发语言·数据结构·c++·其他·算法·矩阵
小白要加油努力1 天前
滑动窗口的典例以及思路阐述
算法
CoovallyAIHub1 天前
一夜之间,大模型处理长文本的难题被DeepSeek新模型彻底颠覆!
深度学习·算法·计算机视觉