有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

加倍如何写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);
  }
}

共 (3) 个答案

  1. # 1 楼答案

    在第一次迭代之后1/i将始终为0,因为它是在整数算术中完成的。所以你的最终答案是1。将其更改为1.0/i以获得双精度算术,并记住,当循环完成时,由于使用双精度运算时的精度损失,可能会出现相当大的错误。你可以试试,看看它有多准确

  2. # 2 楼答案

    1是一个int常量,所以1/(任何大于1的int)是0。您需要使用1.0(浮点)指定需要浮点除法:

    sum+=1.0/i;
          ^
    
  3. # 3 楼答案

    这是一个家庭作业,那么我只需要帮你一个提示:小心变量类型。如果我们把它看作一个整数,1/10等于0。p>