杭电 1715

         水题,不多说。ac代码:

#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 lmax,lmin,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;
}
int main()
{
  string f[1002];
  f[1]="1";f[2]="1";
  for(int i=3;i<1002;++i)
	  f[i]=add(f[i-1],f[i-2]);
  int n;
  cin>>n;
  while(n--)
  {
    int m;
	cin>>m;
	cout<<f[m]<<endl;
  }
  return 0;
}


 

你可能感兴趣的:(String,stdstring)