题解 | #大数加法#

大数加法

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

import java.util.*;

//JAVA 大数相加。不能简单的只把string类型转化成int,会超过int的范围.
//应该模拟加法的运算规则,
//两数相加 >10进1. 前面的数在做加运算会加上这个进的1,所以用一个变量去接住。
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public String solve (String s, String t) {
        int i = s.length()-1;
        int j = t.length()-1;
        int carry =0;
        StringBuilder stringBuilder = new StringBuilder();
        while(i>=0 || j>=0 || carry !=0){
            int x = i<0? 0:s.charAt(i--) - '0';
            int y = j<0? 0:t.charAt(j--) - '0';
            int sum = x + y + carry;
            stringBuilder.append(sum % 10); //添加到字符串尾部
            carry = sum / 10;               //sum大于10进1 小于10为0
        }
        return stringBuilder.reverse().toString(); //对字符串反转
    }
}
全部评论

相关推荐

昨天 17:22
已编辑
西安交通大学 Java
华为 昇腾 ai软件开发 薪资20k x (14-16),职级13A,5%公积金,c/cpp
BLOOMING7:闭眼滴滴,华子给的又少又累
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务