Java計算20的階層之和,1+1/2!+1/3!......1/20!

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); // 輸出計算結果
	}

}

 

計算階層之和結果如下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章