zoukankan      html  css  js  c++  java
  • POJ 3070 Fibonacci

    题意:求斐波那契数列第n项,mod10000。

    解法:矩阵快速幂。矩阵递推式题里都给了……真贴心……不过我觉得第一个矩阵的第二行有点多余,就给擅自省了……嗯……

    代码:

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<string.h>
    #include<math.h>
    #include<limits.h>
    #include<time.h>
    #include<stdlib.h>
    #include<map>
    #include<queue>
    #include<set>
    #include<stack>
    #include<vector>
    #define LL long long
    using namespace std;
    const int mod = 10000;
    void MUL(int a, int b, int c, int x[][2], int y[][2])
    {
        int res[2][2] = {0};
        for(int i = 0; i < a; i++)
            for(int j = 0; j < c; j++)
                for(int k = 0; k < b; k++)
                    res[i][j] = (res[i][j] + x[i][k] * y[k][j]) % mod;
        for(int i = 0; i < a; i++)
            for(int j = 0; j < b; j++)
                x[i][j] = res[i][j];
    }
    int POW(int n)
    {
        int x[1][2] = {1, 0};
        int base[2][2] = {1, 1, 1, 0};
        while(n)
        {
            if(n & 1)
                MUL(1, 2, 2, x, base);
            MUL(2, 2, 2, base, base);
            n >>= 1;
        }
        return x[0][1];
    }
    int main()
    {
        int n;
        while(~scanf("%d", &n) && ~n)
        {
            printf("%d
    ", POW(n));
        }
        return 0;
    }
    

      

  • 相关阅读:
    仿美团pc,koa+ssr(四)
    基本的数据库操作脚本
    jQuery选择器总结
    经常学习参考网站
    WebAPI
    Sqlserver 基本面试题
    truncate和delete的区别
    Webservice,WCF,WebAPI 之间的区别
    WCF 学习
    学习angularJs(1)--引用文件
  • 原文地址:https://www.cnblogs.com/Apro/p/4857508.html
Copyright © 2011-2022 走看看