杭电1297-用string

#include <iostream>
#include <cstring>
using namespace std;
string Add(string a,string b)
{
	int i,j,sum=0;
	if(a.length()<b.length())swap(a,b);
	for(i=a.length()-1,j=b.length()-1;i>=0;i--,j--)
	{
		sum+=a[i]-'0';
		if(j>=0)sum+=b[j]-'0';
		a[i]=sum%10+'0';
		sum/=10;
	}
	if(sum)a='1'+a;
	return a;
}
int main()
{
    int a,j,n;
    string f[2000];
    f[0]="1";
    f[1]="1";
    f[2]="2";
    f[3]="4";
    for(j=4;j<=1000;j++)
    {
        f[j]=Add(Add(f[j-1],f[j-2]),f[j-4]);
    }
    while(cin>>n)
    {
        cout<<f[n]<<endl;
    }
return 0;
}


你可能感兴趣的:(高精度加法)