java里面的while,求解,1+1/2!一直到1/20!

package asw;
public class D {

public static void main(String[] args) {
double sum = 0;
int s = 1;
double a;
while (s <= 20){
a = s*s;
sum += 1/a;
s++;
}
System.out.println(sum);
}

}
这个程序 ,运行之后得出的结果是
1.5961632439130233
而正确的应该是1.7182818284590455,这个程序错在哪

2!表示2的阶乘,即1*2,所以代码需要如下改

package asw;
public class D {

public static void main(String[] args) {
double sum = 0;
int s = 1;
double a =1;
while (s <= 20){
a = a*s;
sum += 1/a;
s++;
}
System.out.println(sum);
}

}

温馨提示:答案为网友推荐,仅供参考
相似回答