用while判读循环语句1+1/2!+1/3!+...1/20!的和阶乘的计算方法 式:n!=n*(n-1)!

package com.chongrui.test;

/*
*用while判读循环语句1+1/2!+1/3!+...1/20!的和
*使用BigDecimal类完成大数字与高精度运算

公式:n!=n*(n-1)!
阶乘的计算方法
阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。


* */

import java.util.Scanner;
import java.math.BigDecimal;
public class test {

public static void main(String[] args) {
BigDecimal sum = new BigDecimal(0.0);//和
BigDecimal factorial = new BigDecimal(1.0);//阶乘项的计算结果
int i =1;
while(i<=20){
sum = sum.add(factorial); // 累加各项阶乘的和
++i;
factorial= factorial.multiply(new BigDecimal(1.0/i));// 计算阶乘项
//java.math.BigInteger.multiply(BigInteger val) 返回一个BigInteger,其值是 (this * val).
}

System.out.println("1+1/2!+1/3!···1/20!的计算结果等于: " + sum);


}
}

原文地址:https://www.cnblogs.com/tantanba/p/6288003.html