POJ3070 - Fibonacci (矩阵快速幂)
2015-08-26 17:20
351 查看
题目链接:POJ3070 - Fibonacci
解题思路
代码
解题思路
给了一种新的斐波那契数列的求解思路,需要对一个矩阵连乘,可以类推数的 快速幂 来进行求解代码
#include <iostream> using namespace std; const int mod = 10000; struct matrix { int data[2][2]; matrix operator*(matrix & rhs) { matrix temp; for(int i=0; i<2; i++) { for(int j=0; j<2; j++) temp.data[i][j] = ( data[i][0]*rhs.data[0][j] + data[i][1]*rhs.data[1][j] ) % mod; } return temp; } }; int solve(int n) { matrix re; for(int i=0; i<2; i++) for(int j=0; j<2; j++) re.data[i][j] = (i==j); matrix base; for(int i=0; i<2; i++) for(int j=0; j<2; j++) base.data[i][j] = 1; base.data[1][1] = 0; while(n) { if(n&1) re = re * base; base = base * base; n >>= 1; } return re.data[0][1]; } int main() { int n; while(cin>>n && n!=-1) { cout<<solve(n)<<"\n"; } return 0; }
相关文章推荐
- 11111
- HoughLinesP函数(概率检测直线)
- 监督算法大比拼之BP、SVM、adaboost非线性多分类实验
- android执行移动动画后按钮点击错位问题解决
- 数据结构:胜者树与败者树
- Python sys.path.append
- 【使用JSOUP实现网络爬虫】使用DOM方法来遍历一个文档
- I NEED A OFFER! 1203 (01背包变形+数学)
- leetcode 153 : Find Minimum in Rotated Sorted Array
- 返回一张可以随意拉伸不变形的图片
- MongoDB基本使用
- ThreadLocalTest
- python generator 的惰性计算
- Android资源访问机制—获取Resources对象
- 同步方法
- Badboy自动化测试工具 导出脚本用于JMeter性能测试
- 1.6 网络编程之 UDP通信
- 1.5 MFC封装思想
- ASP.NET数据绑定方法集合
- hdu 2489 漫步校园