超級大的數做加減乘除 java有八大數據類型: 1、byte(位),最大存儲數據量是255; 2、short(短整數),最大數據存儲量是65536; 3、int(整數),最大數據存儲容量是2的32次方減1; 4、long(長整數),最大數據存儲容量是2的64次方減1; 5、float(單精度浮動數) ...
超級大的數做加減乘除
java有八大數據類型:
1、byte(位),最大存儲數據量是255;
2、short(短整數),最大數據存儲量是65536;
3、int(整數),最大數據存儲容量是2的32次方減1;
4、long(長整數),最大數據存儲容量是2的64次方減1;
5、float(單精度浮動數),直接賦值時必須在數字後加上f或F;
6、double(雙精度);
7、boolean(布爾類型);
8、char(字元)。
其中long類型所能存儲的容量是2的64次方減1,那如果遇到一個比這個容量的數該怎麼辦?
我們可以利用數組來處理,因為以上的八種類型都沒辦法滿足產生這個超級大的數,那我們就需要構建一個類,先使這個數能存在。
我這裡是構建了一個BigLong類(如果不是為了實現這個演算法,java其實存在這個超級大的數-Biginteger直接就可以實現加減乘除還有比較)
public class BigLong {
int num[];
public BigLong(String str) {
int n=0;
int[] count=new int[str.length()];
for(int i=0;i<str.length();i++){
String m=str.substring(i, i+1);
n=Integer.parseInt(m);
count[i]=n;
}
num=count;
}
}
構建這個類的時候也蠻困難的,因為是小白,很多地方特別是數組和String做了很多功課,最後才構建出這個類。
構建函數輸入的是String字元串,然後借用count這個數組將字元串處理好後賦值給num實例變數。
然後在main函數就可以使用了:
String str="58287346328379183738273";
BigLong b=new BigLong(str);
BigLong d=new BigLong("3912834622973378193827382723819283298340");