我們都知道,Java中的int或者long都是有限的.
那麼如果我們要做很大數據的運算,怎麼辦呢?
直接上乾貨:
Java代碼實例,請閱讀註釋:
/**
* 算法系列-大數字運算
* @author
* @date 2018年3月6日
*/
public class AlgorithmBigNumTest {
public static void main(String[] args) {
// 計算 512*34
// 使用數組存儲大數字.
int[] bigArr = new int[8];
int len = bigArr.length,
num = 34; // 被乘數.
bigArr[len-1] = 2; // 最後一位發個位,以此類推.
bigArr[len-2] = 1;
bigArr[len-3] = 5;
// 計算每一位的結果
for (int i = 0; i < len; i++) {
bigArr[i] *= num;
}
// 對每一位進位和留位
for (int i = len-1; i > 0; i--) {
bigArr[i-1] += bigArr[i]/10; //進位
bigArr[i] %= 10; // 留位
}
System.out.println(512*34);
for (int i = 0; i < len; i++) {
System.out.print(bigArr[i]);
}
}
}
--end.
有什麼不清楚的,請留言.