用Java编程求S=1/1!+1/2!+1/3!=.....+1/n! 直到1/n!<=1e-6

求详细的过程,谢谢!!!

public class practice2 {

public static void main(String[] args) {
double n = 1 * 1;
double sum = 0;
for (int m = 2; ; m++) {
if(1/n>=1e-6){
int s = m - 1;
n = s * n;
sum = sum + 1 / n;
}else{
break;
}
}System.out.println("总和为:"+sum);

}

}
前面定义变量就不讲了,直接从for循环说起

循环从m=2开始,无条件限制,每循环一次m值提高1,在FOR循环内创建IF语句当(1/s>1e-6)时,循环下去,int s= m - 1;
n = s * n;
相当于求n的阶层;sum = sum + 1 / n;相当于求从1/1!+....+1/n!的值,随着循环下去,也就是1/n!<=1e-6时,if语句不成立,转而执行else里面的语句,break;打断循环跳出循环体,然后执行System.out.println(sum);输出总值
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-23
晕。。
再说明白点 :

int n = 1;
float sum = 0f;
while(true)
{

//先用递归求的n!

long l1 = n!;
float f = 1/(float)l1;

if(f <条件)
break;
sum+= f;
n++};

或者

long sum1 = 1l;
float sum =0f;
int n = 1;
while(true)
{
sum1 *= n;

float f= 1/(float)sum1 ;
if(f<条件)
break;
sum+= f;

n++;
}

最后输出sum的值可以
相似回答