0
我正在做項目歐拉的一些問題,我偶然發現了一個問題。 我不知道爲什麼這個算法不適用於2^1000。它適用於10^1和10^8範圍內的數字(這些是我測試過的),但它應該適用於所有可能的範圍。順便提一下,2^1000爲1.07 * 10^301。雙數的上限或多或少在10^308,所以這個數字仍然在範圍內。總和的數字問題
import java.lang.Math;
public class Euler15 {
public static void main(String[] args) {
int count = 0;
double res = Math.pow(2,1000);
for(int i = 301; i >= 0; i--){
if (res == 0){
break;
}
while (res >= Math.pow(10, i)){
res-= Math.pow(10, i);
System.out.println(res);
count++;
}
}
System.out.println(count);
}
}
因爲2^1000是方式大! – Ranveer
可能是一個舍入問題。 – wvdz
僅僅因爲它在'double'的範圍內,並不意味着你將所有的數字都提高到單位。 – 2013-11-23 21:55:55