斐波那契数

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

复制代码
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;
}
相关推荐
y1su3 小时前
Leetcode 单调栈模板
java·开发语言·数据结构·算法·leetcode
索尔~古德曼3 小时前
CF(1400-1400&1300-1500)
算法
爱刷碗的苏泓舒4 小时前
泰勒级数与泰勒展开:GNSS卫地距线性化、Jacobian矩阵与Hessian矩阵
线性代数·算法·矩阵·gnss·雅可比矩阵·卫地距线性化·海森矩阵
垆边人似月.4 小时前
华为题:每日温度
数据结构·c++·算法
Sylvia-girl4 小时前
堆排序算法
算法·排序算法·c
Peregrine94 小时前
数据结构 - > 树和二叉树
数据结构·算法
我是人✓4 小时前
Java面向对象核心特性深度解析
java·前端·算法
j7~4 小时前
【算法】专题四.前缀和:一维二维模板,配套 LeetCode 真题,结合同余定理、哈希前缀和,搞定子数组与子矩阵区间求和问题。
数据结构·c++·算法·前缀和·优选算法
看浪的路人4 小时前
第1讲:2026 大模型应用开发全景——Prompt / RAG / 微调 / Agent 到底先用哪个
人工智能·算法
怕浪猫4 小时前
AI Agent 的安全怎么保障?面试最后一关的终极问题
算法·面试·github