用分治思想求斐波那契数列(转自追梦__的博客)

原文链接

其实我们还可以将这个算法求斐波拉契数列的第10000000项对m取余,这样用到矩阵的乘法,下面给出具体的矩阵推导以及代码。

用分治思想求斐波那契数列(转自追梦__的博客)_第1张图片

C++代码   收藏代码
    #include  
    using namespace std;  
    class Matrix{  
    public:   
          int width,height;  
          Matrix(){          
          }  
          Matrix(int hei,int wid){  
             width = wid; height = hei;   
             v = new int*[height];  
               for (int i=0;i> n >> m;  
        a.v[0][0] = 0; a.v[0][1] = 1; a.v[1][0] = 1; a.v[1][1] = 1;   
        Matrix ans;  
        ans = run(n,m);  
        for (int i=0;i

    分治就是分而治之的缩写,分治的思想并不局限于这道题,它能极大的提高算法的效率。所以掌握它是十分必要的。



你可能感兴趣的:(重在积累)