日志4高精度a+b
#include <bits/stdc++.h>
using namespace std;
int t, p, q, i;
string a, b;
int main() {
cin >> t;
while (t--) {
int A[5002] = {0}, B[5002] = {0};
cin >> a >> b;
p = a.length();
q = b.length();
//将字符串 a 和 b 转换为数组 A 和 B,并反转顺序以便从最低位开始相加。
for (i = 0; i < p; i++)
A[i] = a[p - i - 1] - '0';
for (i = 0; i < q; i++)
B[i] = b[q - i - 1] - '0';
//逐位相加 A 和 B,处理进位。
for (i = 0; i < max(p, q); i++) {
A[i] += B[i];
A[i + 1] += A[i] / 10;
A[i] %= 10;
}
//找到结果的最高位实现前导零
while (i > 0 && A[i] == 0) i--;
//然后从最高位开始输出
for (; i >= 0; i--) cout << A[i];
cout << endl;
}
return 0;
}
using namespace std;
int t, p, q, i;
string a, b;
int main() {
cin >> t;
while (t--) {
int A[5002] = {0}, B[5002] = {0};
cin >> a >> b;
p = a.length();
q = b.length();
//将字符串 a 和 b 转换为数组 A 和 B,并反转顺序以便从最低位开始相加。
for (i = 0; i < p; i++)
A[i] = a[p - i - 1] - '0';
for (i = 0; i < q; i++)
B[i] = b[q - i - 1] - '0';
//逐位相加 A 和 B,处理进位。
for (i = 0; i < max(p, q); i++) {
A[i] += B[i];
A[i + 1] += A[i] / 10;
A[i] %= 10;
}
//找到结果的最高位实现前导零
while (i > 0 && A[i] == 0) i--;
//然后从最高位开始输出
for (; i >= 0; i--) cout << A[i];
cout << endl;
}
return 0;
}
全部评论
相关推荐
10-25 22:20
门头沟学院 Java
代码飞升_不回私信人...:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧 点赞 评论 收藏
分享
