我尝试这样做,但是每次运行它都会得到1.0的答案。我无法找出问题所在,请帮助我。以下是代码:

import java.util.Scanner;
public class Number23 {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int n=0;
    float sum = 0,r = 0;

    System.out.print("Enter a number for n: ");
    n = input.nextInt();

    for(int x = 1; x <= n; x++)
    {
        r = (1/x);
        sum = sum + r;
    }

    System.out.print("The sum is "+sum);
 }

}

最佳答案

为了产生具有浮点值的倒数,仅声明r一个float是不够的:您为其指定的表达式也必须为float。您可以通过使用常量f的后缀1除以x来做到这一点:

r = (1f / x);


如果没有后缀,则表达式表示整数除法,该整数除法将产生整数结果,并除去分数。在您的情况下,只有当x等于1时,您才能获得非零值。

关于java - Java程序将整数n的倒数相加,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25962529/

10-09 16:43
查看更多