求1/1!+1/2!+1/3!....+1/20!的java编程!!!应急...谢谢哪位大哥帮忙...

1/1! 后面的!代表什么意思?
代表阶层的意思!!!——!!

第1个回答  2010-09-27
20!的值已是很大啦,如果答案精确在double型数据是,不妨考虑以下办法:
1/20!+...+1/2!+1其实就=[[...[[1/20+1]*19+1]*...*1/2+1]

具体程序如下:

public class Test {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
for (int i = 1; i <= 20; i++) {
if (i == 20) {
System.out.print("1/"+i + "!" + "=");
} else {
System.out.print("1/"+i + "!" + "+");
}
}
double sum=1;
for (int i = 20; i > 1; i--) {
sum=sum*((1/(double)i))+1;
}
System.out.println(sum);

}
}
第2个回答  2010-09-27
public static void main(String[] args) {
double sum=0.0;//总和
long mul=1l;//阶乘结果
for(int i=1;i<=20;i++){
mul=mul*i;
sum=sum+1.0/mul;
}
System.out.println(sum);
}本回答被提问者采纳
第3个回答  2010-09-27
public class Demo001 {
public static void main(String[] args){
Test t = new Test();
Double d = 0d ;
Double d2 = 1d ;
for(int i=1;i<21;i++){
d += d2/t.getVal(i);
}
System.out.println(d);
}
}

class Test{
public Test(){
}
public Double getVal(int x){
if(x==0)return 1.0;
else return x*getVal(x-1);
}
}

1与new Double(1)当分子是有区别的。。要是用1/x的话会出现的结果,但是用1d/x的话,就会出现真正的小数了。。
第4个回答  2010-09-27
double result= 0;
int k = 1;
int m = 1;
for(int i=1;i<=20;i++){
m = m*i;
result += 1.0/m;
}
System.out.println(m);
第5个回答  2010-09-27
public static void main(String[] args) {
double sum=0;
for (int i = 1; i <= 20; i++) {
sum+=(double)1/getJiechen(i);
}
System.out.println(sum);
}

public static int getJiechen(int i) {
if (i == 1) {
return 1;
} else {
return i * getJiechen(i - 1);
}
}

java求1\/1!+ 1\/2! + 1\/3!+...1\/n!之和。n= 20
思路就是a从1开始,每次把1\/a累加的sum里面。累加一次,a加1,这样第一次累加1\/1,第二次累加1\/2。while判断a<=20时一直累加,直到加到1\/20。当a=21时,不再进入循环累加。sum存累加的和,a存当前循环的分母。

Java计算 1+1\/2!+1\/3!···1\/20! 谁能给我详细讲解一下以下代码这个阶...
关于SCALE的理解:21\/110 = 0.190 \/\/ integer=190, scale=3 19\/100=0.19\/\/integer=19, scale=2 好了 回到开头的地方来,1+1\/2!+1\/3!···1\/20!在这个循环里面 fac先等于1 循环之后fac = 1×1\/2 = 1\/2!再循环之后 fac = 楼上的fac(1×1\/2)×1\/3 = 1\/3!。。。1~...

编写Java程序,使用while循环语句计算1+1\/2!+1\/3!…1\/20!之和.
public static void main(String[] args) { \/*i=i+1的简写形式是i+=1;但是二者有本质的区别:如果 i是short类型,+=:会自动类型提升,而=则不会 所以 short i=0;i+=1;\/\/编译通过,类型提升 i=i+1;\/\/编译失败,因为这是赋值操作,i是short类型,而1是默认是int类型 \/ double sum = 0...

编写C程序:求1\/1!+1\/2!+1\/3!+...+1\/n!(n!=1*2*3*4...n)急!急!帮帮啊...
int i,n,j=1;double sum=0;printf("输入n的值:");scanf("%d",&n);for(i=1;i<=n;i++){ j=j*i;sum=sum+(1\/double(j));printf("%d ,%f\\n",j,sum);} printf("sum=%f\\n",sum);}

c语言求e=1+1\/1!+1\/2!+1\/3!+1\/4!+...
问题没说清楚是怎么求,所以这里我决定求第n项的e(n通过控制台输入获取,例如n=3,则e=1+1\/1!+1\/2!。)。这是我的代码:include <stdio.h> int jiecheng(int n)\/\/阶乘函数(利用递归方式计算){ if (n == 1)\/\/递归结束条件,如果n等于1 { return 1;\/\/返回终值 } return n * ...

java 题 计算 1\/1+1\/2+1\/3+...+1\/100 的值,我不确定答案,代码是什么...
double sum = 0;for(int i = 1; i <= 100; i++){ sum += 1\/i }

一道C语言题, 计算1 + 1\/1!+1\/2!+1\/3!+...+1\/n!.帮忙改下程序
return (n*aa(n-1));} void main(){ int x;float sum=1,y;scanf("%d",&x);for(int i=1;i<=x;i++){ sum=sum+1.0\/(y=aa(i));} printf("1+1\/1!+1\/2!+1\/3!+...+1\/n!=%f\\n",sum);} 程序也许不是最简单的!但这里用了递归调用!程序不是最重要的,一个程序的...

...功能是调用函数fun计算1\/1!+1\/2!+1\/3!+...+1\/n!的值,并输出结果,请...
printf("Output:\\nS=1\/1!+1\/2!+...+1\/%d!=%.16f\\n", n, Sum);return 0;} void fun(double *sn, int n){ int i;double Sum=0, jc=1;for (i=1; i<=n; i++){ jc *= i;Sum += 1 \/ jc;} \/* 考生可在本行后添加代码、最多1行、行长<=30字符) *\/ \/***start...

用Java语言编程,计算数学常数e的值,e=1+1\/1!+1\/2!+1\/3!+...。
public class Main { public static void main(String[] args) { double e=1,sum=1; \/\/e的初值为1,sum用来存放n!int i=1;while(sum<Math.pow(10, 1000000)){ \/\/当sum大于10的1000000次方的时候我们认为已近似的 sum=i*sum; 相等了,如果这个数设置的更大就会更加接近e e...

用java编写个1+1\/2+1\/3+1\/4...1\/n
public static void main(String[] args) { System.out.print("输入n:"); int n = new Scanner(System.in).nextInt(); double sum = 0; int i = 1; while (i <= n) { sum += (double) 1 \/ i++; } System.out.println(sum);} ...

相似回答