斐波那契数

斐波那契数 (通常用 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;
}
相关推荐
爱吃涮毛肚的肥肥(暂时吃不了版)3 分钟前
Leetcode——181.超过经理收入的员工
算法·leetcode·职场和发展
Charlie_lll6 分钟前
力扣解题-接雨水
算法·leetcode
仰泳的熊猫7 分钟前
题目2580:蓝桥杯2020年第十一届省赛真题-分类计数
数据结构·c++·算法·蓝桥杯
qyzm7 分钟前
牛客周赛 Round 136
数据结构·python·算法
用户637818131198 分钟前
优先队列的使用
算法
qq_334903158 分钟前
C++与人工智能框架
开发语言·c++·算法
夕珩8 分钟前
Java 排序算法详解:冒泡排序、选择排序、堆排序
java·算法·排序算法
Magic--8 分钟前
从入门到精通:快速排序的核心原理、实现与优化
数据结构·算法·排序算法
weixin_649555678 分钟前
C语言程序设计第四版(何钦铭、颜晖)第十章函数与程序结构之统计完全平方数
c语言·数据结构·算法
沈阳信息学奥赛培训9 分钟前
深搜算法 6300:Grid Path Construction(2418)
算法