斐波那契数列对10007取余数

Mn = ( Mn-1 + Mn-2 ) % 10007

因为
*F(n) = X1 * 10007 + Mn
F(n+1) = X2 * 10007 +Mn+1
F(n+2) = F(n) + F(n+1)
=(X1 + X2)+100007 + Mn + Mn+1
Mn+2 = F(n+2) / 10007 = Mn + Mn+1
所以 Mn = ( Mn-1 + Mn-2 ) % 10007

#include <iostream>
int main()
{
    int a = 1,b = 0, sum = 0,t = 0, n;
    std::cin >> n;
    while ( ++t <= n )
    {
        sum = ( a + b ) % 10007;
        a = b;
        b = sum;
    }
    std::cout << sum;
    return 0;
}

斐波那契数列对10007取余数斐波那契数列对10007取余数 Yicay 发布了1 篇原创文章 · 获赞 0 · 访问量 12 私信 关注
上一篇:Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少(蓝桥基础实战)


下一篇:NOJ部署