私が書いた問題が見つかりません。Project Euler #16 を試みています。ここでは、2^1000 のすべての数字を合計する必要があります。私のプログラムは小さな数字で動作しますが、数字が 18 桁程度になると壊れます。何か助けはありますか?
public static double digit(double n){
return n % 10;
}
public static double sumofDigits(double n){
double sum = 0;
while(n > 1){
sum += digit(n);
n = Math.floor(n/10);
}
return sum;
}
public static void main(String[] args) {
double x = Math.pow(2,1000);
double y = 22222222222222222222d;
System.out.println(sumofDigits(x));
System.out.println(sumofDigits(y));
}
}