#include <iostream>
#include <string>
using namespace std;
//1002 用string类型存储超长数字,并对其进行加法计算
string Sum(string &, string &);
int main() {
int n;
string str1, str2;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> str1 >> str2;
cout << "Case" << i << ":" << endl;
cout << str1 << "+" << str2 << "=" << Sum(str1, str2) << endl;
if (i < n) {
cout << endl;
}
}
return 0;
}
string Sum(string &s1, string &s2) {
string big, small;// 区分两个数位数的大小,将小的加到大数上
int a = s1.length();
int b = s2.length();
big = a >= b ? s1 : s2;
small = a >= b ? s2 : s1;
int bigLen = big.length();
int smallLen = small.length();
//从后往前依次对每一位相加
for (int i = bigLen - 1, j = smallLen - 1; j >= 0; i--, j--) {
big[i] += small[j] - '0';//char字符相加是ASCII的和,如果想要整数值,要减去0的ASCII即“0”
}
for (int i = bigLen - 1;i > 0;i--) {
if (big[i] > '9') { //从后向前判断每一位是否需要进位
big[i] -= 10;
big[i - 1] += 1;
}
}
if (big[0] > '9') { //判断第一位是否需要进位
big = "1" + big;
}
return big;
}
杭电oj 1002(day1)
于 2023-11-07 20:10:23 首次发布