所以我尝试使用 BigDecimal,它给我欧拉数的值高达 50 个小数点。但由于约束值如此之高,数字的范围可以从 1 到 10^6000,因此我没有得到任何精度(使其最佳是另一个问题)。这是代码块:
for(int i=1; i<n+1; i++){
// i is the integer value and bd is the value of the euler's number, so below i am multiplying the value of i with the euler's number
BigDecimal x = BigDecimal.valueOf(i).multiply(bd);
//Here i am taking floor of the above calculated value
x.setScale(0, RoundingMode.HALF_UP);
//and here sum is floor[1*euler's no] + floor[2*euler's number] + ... + floor[n*euler's number]
sum += x.intValue();
}