poj 3070 Fibonacci

来源:互联网 发布:剑三喵哥成男数据 编辑:程序博客网 时间:2024/05/21 22:55

#include<iostream>#include<cstdio>using namespace std;struct node{int v[2][2];};node mult(node ma,node mb){int i,j,k;node ans;for(i=0;i<2;i++)for(j=0;j<2;j++){ans.v[i][j]=0;for(k=0;k<2;k++){ans.v[i][j]+=ma.v[i][k]*mb.v[k][j]%10000;ans.v[i][j]%=10000;}}return ans;}int main(){int n;while(scanf("%d",&n)!=EOF&&n!=-1){node a,b;a.v[0][0]=a.v[0][1]=a.v[1][0]=1;a.v[1][1]=0;b.v[0][0]=b.v[1][1]=1;b.v[0][1]=b.v[1][0]=0;while(n){if(n&1)b=mult(a,b);n=n>>1;a=mult(a,a);}printf("%d\n",b.v[1][0]);}return 0;}


原创粉丝点击