您好,我在操作大量數據時遇到了問題,製作了一個程序,它意味着從一個可以達到10^20的數字中總結數字。但是在10^19左右的時候打破了雙打。Java:我該如何總結10^19 <n <= 10^20的龐大數字n的位數?
我應該使用什麼類型?我已經嘗試過Double和Long,但是我得到了錯誤的答案。
import java.util.Scanner;
public class SumDigit{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
int cases = sc.nextInt();
for(int i=0; i<cases; i++){
double number = sc.nextDouble();
System.out.println(sum(number,0));
}
}
public static int sum(double number, int total){
double digit;
if(number < 10){
total += number;
int totalT = (int) total;
return totalT;
}
else{
digit=(number%10);
total += digit;
return sum(number/10, total);
}
}
}
你嘗試過'BigInteger'嗎?這支持任意大的整數。 –
不知道大整數存在,讓我看看它。謝謝。 – Alan
或者就此而言,只需使用Character.digit(char,radix)'。 –