【剑指offer】剑指 Offer 10- I. 斐波那契数列 (C++ 模拟 取余)

简介: 【剑指offer】剑指 Offer 10- I. 斐波那契数列 (C++ 模拟 取余)

题目链接

题意:

给出n,求出斐波那契数列第n项,值取余1 e 9 + 7

思路:

斐波那契数列递推公式为:

f[0]=0,f[1]=1

f[n]=f[n1]+f[n2](n>2)

特判n < = 1 n<=1n<=1的情况

对于其他情况,for循环求就可以。

假设c就是答案,a是前两项,b是前一项。

每次先求出c = a + b,然后让a = b , b = c 。这样在下一次循环里,a , b就是前两项的值了。

代码:

class Solution {
public:
    int mod=1000000007;
    int fib(int n) {
        int a=0,b=1,c=0;
        if(n==0) return 0;
        if(n==1) return 1;
        for(int i=2;i<=n;i++){
            c=(a+b)%mod;
            a=b;b=c;
        }
        return c;
    }
};


目录
相关文章
|
7月前
|
存储 搜索推荐 Linux
秋招简历项目这样写,offer拿到手软(C++方向)
秋招简历项目这样写,offer拿到手软(C++方向)
|
8月前
|
算法 C++
剑指offer(C++)-JZ51:数组中的逆序对(算法-排序)
剑指offer(C++)-JZ51:数组中的逆序对(算法-排序)
|
2天前
|
算法 C++
【动态规划】斐波那契数列模型(C++)
【动态规划】斐波那契数列模型(C++)
|
8月前
|
算法 C++
剑指offer(C++)-JZ41:数据流中的中位数(算法-排序)
剑指offer(C++)-JZ41:数据流中的中位数(算法-排序)
剑指offer(C++)-JZ41:数据流中的中位数(算法-排序)
|
8月前
|
算法 C++
剑指offer(C++)-JZ3:数组中重复的数字(算法-排序)
剑指offer(C++)-JZ3:数组中重复的数字(算法-排序)
|
22天前
|
C++
剑指 Offer 58 - I:翻转单词顺序(c++字符串常用处理方法)
剑指 Offer 58 - I:翻转单词顺序(c++字符串常用处理方法)
27 0
|
7月前
|
存储 应用服务中间件 API
2023秋招C++后端面试项目推荐,5个项目吃透两个offer拿到手软!
2023秋招C++后端面试项目推荐,5个项目吃透两个offer拿到手软!
|
8月前
|
存储 算法 C++
剑指offer(C++)-JZ50:第一个只出现一次的字符(算法-其他)
剑指offer(C++)-JZ50:第一个只出现一次的字符(算法-其他)
|
8月前
|
人工智能 算法 BI
剑指offer(C++)-JZ66:构建乘积数组(算法-其他)
剑指offer(C++)-JZ66:构建乘积数组(算法-其他)
|
8月前
|
算法 测试技术 C++
剑指offer(C++)-JZ20:表示数值的字符串(算法-模拟)
剑指offer(C++)-JZ20:表示数值的字符串(算法-模拟)