1sting
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4190 Accepted Submission(s): 1584
3 1 11 11111
1 28
观察规律 其实就是斐波那契数列 只是要考虑大数情况
#include<cstdio> #include<iostream> #include<cstring> using namespace std; int d[202][3000]={0}; int num[202]={0}; int main() { d[1][1]=1; d[2][1]=2; num[1]=num[2]=1; for(int i=3;i<=200;i++) { int k=0; int j=0; for(j=1;j<=num[i-1];j++) { d[i][j]=d[i-1][j]+d[i-2][j]+k; k=d[i][j]/10; d[i][j]%=10; } if(k) { d[i][j]=k; num[i]=j; } else { num[i]=j-1; } } int t=0; int n=0; char x[202]; scanf("%d",&t); getchar(); while(t--) { scanf("%s",&x); n=strlen(x); for(int i=num[n];i>=1;i--) { printf("%d",d[n][i]); } printf("\n"); } return 0; }