package com.mine.main;
/** * 很大很大的兩個數相加(可能超出int,也可能超出long)
* * @author niezhenjie
* */
public class bignumber
public static string add(string num1, string num2)
if (null == num2 || num2.trim().length() == 0)
int add = 0; // 滿10進1
int maxlength = math.max(num1.length(), num2.length());
// 兩個數相加,和的位數最多是兩個數中最大的數的+1位 ,如999+999,結果是4位
char ret = new char[maxlength + 1];
int len1 = num1.length() - 1;
int len2 = num2.length() - 1;
for (int j = 0; j < ret.length; j++)
// len1比len2小,不足位用0代替
if (len1 - j < 0) else
if (len2 - j < 0) else
int i1 = integer.parseint(r1);
int i2 = integer.parseint(r2);
// 兩位相加再加上進製就是該位置的結果了
ret[j] = string.valueof((i1 + i2 + add) % 10).charat(0);
// 滿十進1
add = (i1 + i2 + add) / 10;
} // 反轉過來的結果才是最終的運算結果
reverse(ret);
return string.valueof(ret).trim();
} public static void reverse(char chars)
for (int j = 0; j < chars.length >> 1; j++)
}}
JAVA實現兩個大數相加
主要的思想是 把兩個數存在string中了,然後將每個數字取出,放到陣列,由最末位開始計算,算加法,判斷是否進製,進製則前位 1,若超過長度,則copy到新的陣列。如下 public class bigintadd else for int i 0 i arraytwo.length i else ...
兩個大整數相加 Java實現
本文分析和實現了兩個大整數相加的思路和做法 1.首先,由於計算機表示的整數範圍有限,當加數的位數超過計算機所能表示的範圍時就需要用到這裡的演算法。由於整數過大,不能一次完成相加,我們猜想能否將兩個整數儲存到陣列中,然後逐位相加。當然,這裡實現的方法就是基於此。如下 public class bigi...
jsp兩個數字相加 2 兩數相加
題目 給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0...