Java計算大整數

package com.sg.cp.utils;

public class bigIntegerSum{
    public static void main(String[] args) {
        System.out.println(sum("1234123412321432", "1234123541324532"));
    }

    public static String sum(String num1, String num2){
        if(num1.length() > num2.length()){
            StringBuilder sb = new StringBuilder(num2);
            for (int i = 0; i < num1.length() - num2.length(); i++) {
                sb.insert(0, '0');
            }
            num2 = sb.toString();
        }
        if(num1.length() < num2.length()){
            StringBuilder sb = new StringBuilder(num1);
            for (int i = 0; i < num2.length() - num1.length(); i++) {
                sb.insert(0, '0');
            }
            num1 = sb.toString();
        }

        int add = 0;//進位
        StringBuilder sb = new StringBuilder();
        for (int i = num1.length() - 1; i >= 0; i--) {
            int n1 = Integer.parseInt(String.valueOf(num1.charAt(i)));
            int n2 = Integer.parseInt(String.valueOf(num2.charAt(i)));
            int sum = n1 + n2 + add;
            System.out.println(sum);
            sb.insert(0, Integer.parseInt(String.valueOf(sum % 10)));
            add = sum / 10;
        }
        if(add != 0)
            sb.insert(0, add);
        return sb.toString();
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章