大斐波数
Problem Description
Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
Input
输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。
Output
输出为N行,每行为对应的f(Pi)。
Sample Input
5
1
2
3
4
5
Sample Output
1
1
2
3
5
总觉得是哪次比赛的签到题….结果找不到了
AC代码:
#include<bits/stdc++.h>
using namespace std;
using LL =int64_t;
int ans[1005][1005];
void init()
{
memset(ans,0,sizeof(ans));
ans[1][0]=1,ans[2][0]=1;
for(int i=3;i<=1000;i++) {
for(int j=0;j<500;j++) {
ans[i][j]+=ans[i-1][j]+ans[i-2][j];
if(ans[i][j]>=10) {
ans[i][j]-=10;
ans[i][j+1]+=1;
}
}
}
return;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
init();
int T;
cin>>T;
for(int i=0;i<T;i++) {
int n,k=500;
cin>>n;
while(ans[n][k]==0) k--;
for(;k>=0;k--)
cout<<ans[n][k];
cout<<endl;
}
return 0;
}
几天不打代码手速都慢了…..