我尝试这样做,但每次运行它时我都会得到 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 程序将 n 以内的整数的倒数相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962529/