链接:点击打开链接
题意:大数斐波那契
代码:
#include <iostream> #include <string.h> #include <stdio.h> using namespace std; #define N 10000 #define M 300 #define mod 100000000 int a[N][M]; void bignumber(){ int i,j,t; a[1][1]=a[2][1]=a[3][1]=a[4][1]=1; for(i=5;i<N;i++){ t=0; for(j=1;j<M;j++){ t=t+a[i-1][j]+a[i-2][j]+a[i-3][j]+a[i-4][j]; a[i][j]=t%mod; t/=mod; } } } //大数斐波那契模板 int main(){ int n,i; memset(a,0,sizeof(a)); bignumber(); while(scanf("%d",&n)!=EOF){ i=M-1; while(!a[n][i]) i--; cout<<a[n][i--]; //假如不到八位数的话,直接输出防止输出前导零 while(i>=1){ printf("%08d",a[n][i]); i--; } cout<<endl; } return 0; }