题解 | #高精度整数加法#从低位向高位遍历,对应的位置相加再加上低位的进位

高精度整数加法

http://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String s1 = in.nextLine();
            String s2 = in.nextLine();
            int i = s1.length()-1,j=s2.length()-1;
            int jiwei = 0,yushu = 0,sum = 0;
            StringBuilder sb = new StringBuilder();
            while(i>=0 || j>=0){
                if(i>=0 && j>=0){
                    sum = (int)((s1.charAt(i) - '0') + (s2.charAt(j) - '0') + jiwei);
                }else if(i<0 && j>=0){
                    sum = (int)((s2.charAt(j) - '0') + jiwei);
                }else if(i>=0 && j<0){
                    sum = (int)((s1.charAt(i) - '0') + jiwei);
                }
                jiwei = sum / 10;
                yushu = sum % 10;
                sb.append(yushu);//先添加低位再添加高位,输出的时候要翻转
                i--;
                j--;
            }
            if(jiwei>0){//最后判断是否有进位
                sb.append(jiwei);
            }
            System.out.println(sb.reverse().toString());
        }
    }
}
全部评论

相关推荐

头像
05-14 12:29
安卓
点赞 评论 收藏
转发
1 2 评论
分享
牛客网
牛客企业服务