/*
中文题意:
中文翻译:
题目大意:
解题思路:
难点详解:
关键点:
解题人:lingnichong
解题时间:2014/7/31 20:42
解题感受:
*/
5 1 2 3 4 5
1 1 2 3 5
#include<stdio.h>
#include<string.h>
#define Pi 1010
#define MAXN 2500
int f[Pi][MAXN];
int main()
{
int i,j,k;
memset(f,0,sizeof(f));
f[1][0]=f[2][0]=1;
for(i=3;i<Pi;i++)
{
for(j=MAXN-1;j>=0;j--)
if(f[i-1][j]!=0) break;
for(k=0;k<=j;k++)
{
f[i][k]+=(f[i-1][k]+f[i-2][k]);
if(f[i][k]>=10)
{
f[i][k]-=10;
f[i][k+1]+=1;
}
}
}
int T,n;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=MAXN-1;(i>=0)&&(f[n][i]==0);i--);
for(;i>=0;i--)
printf("%d",f[n][i]);
printf("\n");
}
return 0;
}
原文:http://blog.csdn.net/qq_16767427/article/details/38323089