您的位置:首页 > 其它

杭电ACM 1002大数相加

2013-04-24 12:27 330 查看
#include<iostream>
#include<string>
#include<vector>
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 = max.length();
int lmin = min.length();
for(int i=lmax-1,j=lmin-1; j>=0; --i, --j)
{
max[i]+=min[j] - '0';
}

for(int i=lmax-1; i>=1 ;--i)
{
if( max[i]>'9' )
{
max[i] = max[i] - 10;
max[i-1]+=1;
}
}
if(max[0] > '9')
{
max[0]-=10;
max = '1' +max;
}
return max;
}

int main()
{
string a,b;
string aa[20];
string bb[20];
int T;
cin>>T;
vector<string> svec;

for(int i=0; i<T; i++)
{
cin>>a>>b;
aa[i] =a ;
bb[i] = b;
svec.push_back( add(a,b) );
}
cout<<endl;
for(int i=1; i<=T; ++i)
{
cout<<"case "<<i<<":"<<endl;
cout<<aa[i-1]<<" + "<<bb[i-1]<<" = "<<svec[i-1]<<endl<<endl;

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: