#include<iostream> #include<stdlib.h> #define N 100000000 using namespace std; void main(){ unsigned n; long int sa[55]; long int sb[55]; memset(sa,0,sizeof(long int)*55); memset(sb,0,sizeof(long int)*55); sa[0]=0; sa[1]=3; sa[2]=8; long int a,b,c,d,e; a=b=c=d=e=0; bool t=true; for(int i=3;i<22;++i){ sa[i]=sa[i-1]*2+sa[i-2]*2; } a=sa[20]%N; b=sa[20]/N; c=sa[21]%N; d=sa[21]/N; sa[20]=a; sb[20]=b; sa[21]=c; sb[21]=d; for(int j=22;j<55;++j){ sa[j]=(sa[j-1]*2+sa[j-2]*2)%N; e=(sa[j-1]*2+sa[j-2]*2)/N; sb[j]=sb[j-1]*2+sb[j-2]*2+e; } while(cin>>n){ int qwq=n; if(qwq<=19) cout<<sa[qwq]<<endl; else{ if(sb[qwq]==0) cout<<sa[qwq]<<endl; else{ cout<<sb[qwq]; long int fff=sa[qwq]; int z=-1; for(;fff<N;++z){ fff*=10; } while(z--){ cout<<"0"; } cout<<sa[qwq]<<endl; } } } }
杭电ACM 第2047题
最新推荐文章于 2021-05-20 14:56:35 发布