大菲波数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9874 Accepted Submission(s): 3305
Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。
输出为N行,每行为对应的f(Pi)。
5 1 2 3 4 5
1 1 2 3 5
#include#include #include #include #define N 1001 #define L 105 const int M=10000; int f[N][L]; void Fibo() { int i,j,len=1; memset(f,0,sizeof(f)); f[0][0]=1; f[1][0]=1; for(i=2;i =M) { f[i][j+1]+=f[i][j]/M; f[i][j]%=M; } } } int main() { int i,p,n,len,flag; Fibo(); scanf("%d",&n); while(n--) { flag=0; scanf("%d",&p); for(i=L-1;i>=0;i--) if(f[p-1][i]) { printf("%d",f[p-1][i]); break; } i--; for(;i>=0;i--) printf("%04d",f[p-1][i]); puts(""); } return 0; }