【矩阵快速幂】POJ 3070 Fibonacci (大数 Fibonacci)(大二版)
来源:互联网 发布:centos搭建mc服务器 编辑:程序博客网 时间:2024/06/05 00:25
【题目链接】:click here~~
【题目大意】:
In the Fibonacci integer sequence, F0 = 0, F1 = 1, andFn =Fn − 1 +Fn − 2 forn ≥ 2. For example, the first ten terms of the Fibonacci sequence are:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …
An alternative formula for the Fibonacci sequence is
.
Given an integer n, your goal is to compute the last 4 digits of Fn.
【解题思路】
练习矩阵快速幂的基础题了,不说了,比较基础,初学快速幂的可以看这里 click here~~ click here~~加深理解
本题注意取模mod的大小
代码:
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <math.h>using namespace std;const int mod[5]= {0,10,100,1000,10000};const int MOD =10000;#define LL long longLL X,Y,N,M,i,j;struct Matrlc{ int mapp[2][2];} ans,base;Matrlc unit= {1,0,0,1};Matrlc mult(Matrlc a,Matrlc b){ Matrlc c; for(int i=0; i<2; i++) for(int j=0; j<2; j++) { c.mapp[i][j]=0; for(int k=0; k<2; k++) c.mapp[i][j]+=(a.mapp[i][k]*b.mapp[k][j])%MOD;//mod[M]; c.mapp[i][j]%=MOD; } return c;}int pow(int n){ base.mapp[0][0] =base.mapp[0][1]=base.mapp[1][0]=1; base.mapp[1][1]=0; ans.mapp[0][0] = ans.mapp[1][1] = 1;// ans 初始化为单位矩阵 ans.mapp[0][1] = ans.mapp[1][0] = 0; while(n) { if(n&1) ans=mult(ans,base); base=mult(base,base); n>>=1; } return ans.mapp[0][1];}int main(){ int t; while(cin>>N&&N!=-1) { printf("%d\n",pow(N)); } return 0;}
0 0
- 【矩阵快速幂】POJ 3070 Fibonacci (大数 Fibonacci)(大二版)
- POJ 3070 Fibonacci (矩阵快速幂求fibonacci)
- POJ-3070 Fibonacci(矩阵快速幂求Fibonacci数列)
- poj - 3070 - Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂)
- POJ 3070 Fibonacci(矩阵快速幂)
- 【POJ】3070Fibonacci(矩阵快速幂)
- POJ 3070 Fibonacci(矩阵快速幂)
- POJ 3070 Fibonacci(矩阵快速幂)
- 【POJ 3070】Fibonacci(矩阵快速幂)
- POJ 3070 Fibonacci(矩阵快速幂)
- 【POJ 3070】Fibonacci(矩阵快速幂)
- POJ - 3070 - Fibonacci (矩阵快速幂)
- POJ-3070Fibonacci(矩阵快速幂)
- 【POJ】3070 - Fibonacci(矩阵快速幂)
- POJ 3070 Fibonacci(矩阵快速幂)
- Poj 3070 Fibonacci (矩阵快速幂)
- 堆(heap)和栈(stack)有什么区别??
- poj 2112 Optimal Milking (输出超限)
- 川大oj 4429
- 动态页面技术(jsp)
- 第51页17题
- 【矩阵快速幂】POJ 3070 Fibonacci (大数 Fibonacci)(大二版)
- c++ STL总结一:vertor和list
- [JAVA]LeetCode199 Binary Tree Right Side View
- HDOJ I NEED A OFFER! 1203
- 蓝桥杯 nim博弈 高僧斗法
- 黑马程序员 ------Static关键字的学习
- 第一章 HBase简介
- python 学习笔记之字典
- C 语言:指针、free()与 NULL