题解 | #大数加法#

大数加法

https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public String solve (String s, String t) {
        if (s.length() <= 0) {
            return t;
        }
        if (t.length() <= 0) {
            return s;
        }
        // 交换字符串,让s为较长的字符串,如果不是则进行交换
        if (s.length() < t.length()) {
            String temp = s;
            s = t;
            t = temp;
        }
        int carry = 0; // 近位
        char[] res = new char[s.length()];
        for (int i = s.length() - 1; i >= 0; i--) {
            // 12341 s
            // 342 t
            int temp = s.charAt(i) - '0' + carry;
            int j = t.length() - (s.length() - i);
            if (j >= 0) {
                temp += t.charAt(j) - '0';
            }
            carry = temp / 10;
            temp = temp % 10;
            res[i] = (char) (temp + '0');
        }
        String result = String.valueOf(res);
        if (carry == 1) {
            result = '1' + result;
        }
        return result;
    }
}

采用模拟的方法进行操作

全部评论

相关推荐

05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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