1297 Children’s Queue
2012-05-05 21:32
162 查看
#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[1001];
int main()
{
f[0]="1";
f[1]="1";
f[2]="2";
f[3]="4";
for(int i=4;i<1001;++i)
{
f[i]=add(add(f[i-1],f[i-2]),f[i-4]);
}
int n;
while(cin>>n)
{
cout<<f
<<endl;
}
return 0;
}
#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[1001];
int main()
{
f[0]="1";
f[1]="1";
f[2]="2";
f[3]="4";
for(int i=4;i<1001;++i)
{
f[i]=add(add(f[i-1],f[i-2]),f[i-4]);
}
int n;
while(cin>>n)
{
cout<<f
<<endl;
}
return 0;
}
相关文章推荐
- [ACM_HDU_1297递归推导]Children’s Queue
- 杭电1297-Children’s Queue
- HDOJ/HDU 1297 Children’s Queue(推导~大数)
- 杭电ACM 1297 Children’s Queue
- 杭电ACM 1297 Children’s Queue
- 杭电acm 1297 Children's Queue.大数加递归
- HDU 1297 Children’s Queue
- HDOJ 1297:Children’s Queue
- 【大数递推】HDU 1297——Children’s Queue
- hdu 1297 Children’s Queue
- HDU—— 1297 Children’s Queue
- HDU 1297 Children’s Queue
- HDU 1297 - Children’s Queue
- HDU 1297 Children’s Queue
- HDU-1297 Children’s Queue(递推)(高精度)
- Children’s Queue HDU 1297 递推+大数
- HDU 1297 Children’s Queue
- HDU 1297 Children’s Queue
- hdu 1297 Children’s Queue(大数处理)
- hdu 1297 Children’s Queue(java+简单dp)