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); // 輸出計算結果
}
}
計算階層之和結果如下