斐波那契数

斐波那契数 (通常用 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;
}
相关推荐
不穿格子的程序员2 分钟前
从零开始刷算法——二叉树篇:层序遍历 + 有序数组转二叉搜索树
算法
kaikaile19955 分钟前
同伦算法求解非线性方程组的MATLAB实现与优化
开发语言·算法·matlab
cici158745 分钟前
计算四连杆机构的运动学
线性代数·算法·机器学习
南烟斋..8 分钟前
Linux系统编程核心知识指南
linux·算法
Jerryhut12 分钟前
光流估计从原理到实战:基于 Lucas-Kanade 算法与 OpenCV 实现
人工智能·opencv·算法
数据大魔方19 分钟前
【期货量化实战】豆粕期货量化交易策略(Python完整代码)
开发语言·数据库·python·算法·github·程序员创富
memmolo22 分钟前
【3D传感技术系列博客】
算法·计算机视觉·3d
不爱编程爱睡觉22 分钟前
代码随想录算法训练营第四十三天 | 图论理论基础、深搜理论基础、98. 所有可达路径、广搜理论基础
算法·leetcode·图论·代码随想录
六毛的毛22 分钟前
冗余连接II
算法
永远都不秃头的程序员(互关)35 分钟前
【K-Means深度探索(二)】K值之谜:肘部法则与轮廓系数,如何选出你的最佳K?
算法·机器学习·kmeans