分别用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”。