因为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