码迷,mamicode.com
首页 > 其他好文 > 详细

斐波那契数列

时间:2018-06-24 22:25:07      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:.com   image   斐波那契数   col   code   bsp   style   inf   class   

技术分享图片

解析

利用基本运算规则,(a + b) % p = (a % p + b % p) % p ,考虑一个一个递推。写一个flag表示当前求到第几个数,以falg为基准,flag+1为下一个数,flag为当前的数,flag-1为上一个数,

得出递推公式:shulie[flag+1]=shulie[flag]+shulie[flag-1]

因为第1第2个%100000007都是1,所以不用管,但是向后的话需要处理一下。于是从第三个开始每一个结果都%100000007,以达成最后的结果是(a % p + b % p) % p。 

代码

#include<bits/stdc++.h>
using namespace std;
int shulie[100005];
int n;
int main()
{
    cin>>n;
    shulie[1]=1;
    shulie[2]=1;
    int flag=2;
    while(flag!=n)
    {
        shulie[flag+1]=shulie[flag]+shulie[flag-1];
        shulie[flag+1]=shulie[flag+1]%1000000007;//(a%p+b%p)%p=(a+b)%p
        flag++;
    }
    cout<<shulie[n]<<endl;
} 

 

斐波那契数列

标签:.com   image   斐波那契数   col   code   bsp   style   inf   class   

原文地址:https://www.cnblogs.com/KyleDeng/p/9221810.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!