package project0329.suanfa.start1;
import java.math.BigDecimal;
import java.util.Scanner;
public class Stratum {
public static void main(String[] args) {
// TODO Auto-generated method stub
/* 我的错误答案
* int d=1,sum=0,k=0;
Scanner num=new Scanner(System.in);
System.out.println("请输入要阶层值");
int n=num.nextInt();
for(int i=1;i<n;i++) {
for(int j=i+1;j>=1;j--) {
d*=j;
k=1/d;
System.out.println(k);
}
sum+=k;
}
System.out.println(sum);
*/
//正确答案
BigDecimal sum = new BigDecimal(0.0); // 和
BigDecimal factorial = new BigDecimal(1.0); // 阶乘项的计算结果
int i = 1; // 循环增量
while (i <= 20) {
sum = sum.add(factorial); // 累加各项阶乘的和
++i; // i加1
factorial = factorial.multiply(new BigDecimal(1.0 / i)); // 计算阶乘项
}
System.out.println("1+1/2!+1/3!···1/20!的计算结果等于:\n" + sum); // 输出计算结果
}
}
计算阶层之和结果如下