我想求1+1⼀2!+1⼀3!+1⼀4!+1⼀5! ,但是如下代码计算结果总是1.0,请问错在哪里了?

2026年09月18日 20:09
有1个网友回答
网友(1):

因为Java语言中整数除以整数得出的结果,程序会自动取整,所以1/i当i>1时程序会自动取整得到的结果为0,所以程序的结果为1.0,改正的方法是,把1/i改成1.0/i,让一个double型的数除以整数得到的结果就是double型的小数了,就不是0了.程序的结果就是1.7166666666666668了.

完整的Java程序如下(改动的地方见注释)

package lianxi4;
public class kongzhi2 {
 public static void main(String[] args) {
  double sum1=1;
  double sum2=0;
  int i=1;
  while(i<=5){
   sum1=sum1*(1.0/i);//这里sum1=sum1*(1/i);改成sum1=sum1*(1.0/i);
   sum2=sum2+sum1;
   i++;
  }
  System.out.println(sum2);
 }
}

运行结果

1.7166666666666668