366. 斐波纳契数列
2018-01-23 00:54
162 查看
传送门
用快速幂求矩阵乘法
代码如下:
用快速幂求矩阵乘法
代码如下:
struct matrix { int m[2][2]; }; class Solution { public: matrix multi(matrix a, matrix b) { matrix ans; for(int i=0; i<2; i++) { for(int j=0; j<2; j++) { ans.m[i][j]=0; for(int k=0; k<2; k++) { ans.m[i][j]+=a.m[i][k]*b.m[k][j]; } } } return ans; } int fibonacci(int n) { n--; matrix base,ans; base.m[0][0]=base.m[0][1]=base.m[1][0]=1; base.m[1][1]=0; ans.m[0][0]=ans.m[1][1]=1; ans.m[1][0]=ans.m[0][1]=0; while(n) { if(n&1) ans=multi(ans,base); base=multi(base,base); n>>=1; } return ans.m[0][1]; } };
相关文章推荐
- 366. 斐波纳契数列
- 【LintCode 入门】366. 斐波纳契数列
- LintCode_366_斐波纳契数列
- LintCode 366. 斐波纳契数列
- LintCode_366_斐波纳契数列
- LintCode_366_斐波纳契数列
- Lintcode 入门-366斐波纳契数列
- 【LintCode-366】斐波纳契数列 (Java实现)
- 366. 斐波纳契数列
- 斐波纳契数列!
- NYOJ366 D的小L 和 NYOJO32 组合数 和 NYOJ19 擅长排列的小明 和 NYOJ488 素数环 【递归】
- NYOJ 366 D的小L
- 斐波纳契数列
- PHP上台阶问题(斐波纳契数列应用)
- 用PHP迭代器来实现一个斐波纳契数列
- CodeForces 366B - Dima and To-do List
- Java算法求最大最小值,倒序,冒泡排序,斐波纳契数列,日历一些经典算法
- 【南理oj】366 - D的小L(STL - 全排列)
- 【ny-oj】-366-D的小L(STL-全排列(next_permutation()))
- 查找斐波纳契数列中第 N 个数