日期:2014-05-20  浏览次数:20683 次

分别用do-while和for循环计算1+1/2!+1/3!+……的前20项和

public class Nu {
  public static void main(String args[])
  {
int m=1,n;
float i,sum=0;
for(n=1;n<=20;n++)
{ m=m*n;
i=1/m;
sum=sum+i;
}
if(n>=20)
 
System.out.print(sum);
  }
}
我写成这个样子,可是输出为1.0,一直找不到错在哪里,高手们指教阿。

------解决方案--------------------
i=1/m; 改为 i = 1.0F / m; 就可以了。

因为 1 和 m 是 int 类型的,只有第一次是“1”,以后 m > 1,所以 1/m 的结果是“0”。