33,010
社区成员
发帖
与我相关
我的任务
分享
string sum(string& a, string& b){
if (a.length() > b.length())a.swap(b);
int len1 = a.length(), len2 = b.length();
int flags = 0;//
string ret(len2+1,'0');
int i = len1-1,j=len2-1;
while(i>-1){
int tmp = a[i] + b[j] + flags-2*'0';
flags = tmp / 10;
tmp %= 10;
ret[j + 1] += tmp;
--i; --j;
}
while (j > -1){
int tmp = b[j] + flags-'0';
flags = tmp / 10;tmp %= 10;
ret[j + 1] += tmp;
--j;
}
ret[0] += flags;
int from = 0;
while (ret[from] == '0')++from;
return ret.substr(from);
}
int main(){
int T = 0; cin >> T;
for (int i = 1; i < T + 1;++i)
{
string a, b;
cin >> a >> b;
cout << "Case " <<i<< ":" <<"\n"
<< a << " + " << b<<" = " << sum(a, b);
if (i < T)cout<<"\n" << endl;
}
}