#include<iostream>
#include<string>
using namespace std;
string add(string a,string b)
{
string max,min;
max=a;min=b;
if(a.length()<b.length())
{
max=b;min=a;
}
int lmin,lmax,l;
lmax=max.size();
lmin=min.size();
l=lmax-1;
for(int i=lmin-1;i>=0;--i)
{
max[l--]+=min[i]-'0';
}
for(int j=lmax-1;j>=1;j--)
{
if(max[j]>'9')
{
max[j]-=10;
max[j-1]++;
}
}
if(max[0]>'9')
{
max[0]-=10;
max='1'+max;
}
return max;
}
string f[8000];
int main()
{
f[1]="1";
f[2]="1";
f[3]="1";
f[4]="1";
for(int i=5;i<8000;++i)
{
f[i]=add(add(add(f[i-1],f[i-2]),f[i-3]),f[i-4]);
}
int n;
while(cin>>n)
{
cout<<f[n]<<endl;
}
return 0;
}
1250 Hat's Fibonacci
最新推荐文章于 2019-10-06 08:10:46 发布