算法练习记录

1、输入两个字符串数据,返回加法运算后的值?

      public static String addStrings(String num1, String num2) {
        StringBuilder res = new StringBuilder();
        int i = num1.length() - 1;
        int j = num2.length() - 1;
        int carry = 0;

        while (i >= 0 || j >= 0 || carry != 0) {
            /**字符’0’的ascii码是48
             *数字0的值是0
             *所以’0’和0差48
             *num1.charAt(i) - '0'是为了转换字符到数字
             */
            int x = i >= 0 ? num1.charAt(i) - '0' : 0;
            int y = j >= 0 ? num2.charAt(j) - '0' : 0;
            int sum = x + y + carry;
            res.append(sum % 10); //保存当前位的值
            carry = sum / 10;     //保存进到上一位的值
            i--;
            j--;
        }
        return res.reverse().toString();
    }

    public static void main(String[] args) {
        System.out.println(addStrings("123", "456"));  // 输出: 579
        System.out.println(addStrings("999", "1"));    // 输出: 1000
    }
posted @ 2025-10-13 11:16  心猿益码  阅读(8)  评论(0)    收藏  举报