题解 | #大数加法#利用StringBuilder insert(0,xxx)

大数加法

http://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) {
        // write code here
        int len1 = s.length();
        int len2 = t.length();
        if(len1 == 0){
            return t;
        }
        if(len2 == 0){
            return s;
        }
        int maxLength = Math.max(len2,len1);
        int curIndex = 0;
        boolean isNeedAdd = false;
        StringBuilder sb = new StringBuilder();
        while(curIndex < maxLength){
            int n1 = 0;
            if(curIndex < len1){
                n1 = Integer.valueOf(s.substring(len1 - 1 - curIndex,len1 - curIndex));
            }
            int n2 = 0;
            if(curIndex < len2){
                n2 = Integer.valueOf(t.substring(len2 - 1 - curIndex,len2 - curIndex));
            }
            curIndex ++;

            int count = n1 + n2;
            if(isNeedAdd){
                count += 1;
            }

            if(count >= 10){
                isNeedAdd = true;
                sb.insert(0,count % 10);
            } else {
                isNeedAdd = false;
                sb.insert(0,count);
            }

        }
        if(isNeedAdd){
            sb.insert(0,1);
        }
        return sb.toString();
    }
}
全部评论

相关推荐

星辰再现:裁员给校招生腾地方
点赞 评论 收藏
分享
06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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