大数相加

发布时间 2023-04-11 13:10:13作者: zhaozihang

Java实现

描述:以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。

public class Solution {
    public String solve (String s, String t) {
        // write code here
        StringBuilder res = new StringBuilder();
        int carry = 0; // 进位
        // 只要有一个字符串还没遍历到头或者前一位有进位,就进入循环
        for (int i = s.length() - 1, j = t.length() - 1; i >= 0 || j >= 0 ||
                carry != 0; i--, j--) {
            // i小于零,说明s已经遍历完了,此时为0;
            int x = i >= 0 ? s.charAt(i) - '0' : 0;
            int y = j >= 0 ? t.charAt(j) - '0' : 0;
            int sum = x + y + carry;
            res.append(sum % 10);
            carry = sum / 10; // 进位
        }
        return res.reverse().toString();
    }
}