日志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 &amp;&amp; A[i] == 0) i--;
//然后从最高位开始输出
        for (; i >= 0; i--) cout << A[i];
        cout << endl;
    }
    return 0;
}
全部评论

相关推荐

丿南烟丶:黑白模板吧,不要这样花哨的。 主要成就太空了,和获奖融在一起,写一两行就行了。 职业技能不要这样排,就传统的掌握精通什么什么然后举例补充的一些重要技术点。 自我介绍说实话也没啥用,可以删了。 把自己的两个项目方案细节补充上去,为什么这样设计,怎么设计,成果是什么按star法则来写 你要引导面试官来问你的技能和项目,你的获奖和自我介绍别人可能看都不看一眼或者不太在乎,重要的是展示你能干活的能力
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务