加倍如何写1+1/2+1/3+java中的1/4999+1/5000?
如何写1+1/2+1/3+java中的1/4999+1/5000? 我试过了,但没用
public class Harmonic{
public static void main(String[] args){
double sum = 0;
for(int i=1; i<=5000; i++){
sum+=1/i;
}
System.out.println(sum);
}
}
# 1 楼答案
在第一次迭代之后
1/i
将始终为0,因为它是在整数算术中完成的。所以你的最终答案是1。将其更改为1.0/i
以获得双精度算术,并记住,当循环完成时,由于使用双精度运算时的精度损失,可能会出现相当大的错误。你可以试试,看看它有多准确# 2 楼答案
1是一个int常量,所以1/(任何大于1的int)是0。您需要使用1.0(浮点)指定需要浮点除法:
# 3 楼答案
这是一个家庭作业,那么我只需要帮你一个提示:小心变量类型。如果我们把它看作一个整数,1/10等于0。p>