2018年4月30日 练习

实列019 计算1!+1/2!+1/3!+...+1/10!的值

 1 import java.math.BigDecimal;
 2 public class Factorial 
 3 {
 4     public static void main(String[] args)
 5     {
 6         BigDecimal sum = new BigDecimal(0.0);                     //使用BigDecimal类
 7         BigDecimal factorial = new BigDecimal(1.0);               //阶乘项的计算结果
 8         int i = 1;                                                //循环增量
 9         while(i <= 10)
10         {
11             sum= sum.add(factorial);                              //累加各项阶乘的结果
12             ++i;                                                  //i加
13             factorial = factorial.multiply(new BigDecimal(1.0/i));//计算阶乘项
14         }
15         System.out.println("1+1/2!+1/3!...1/10!的计算结果如下:\n"+sum);//输出计算结果
16     }
17 
18 }

备注:1、引用BigDecimal类精确求阶乘的值

           2、利用multiply()进行阶乘运算、计算的逻辑如下:如计算1!+1/2!+1/3!+...+1/10!的值 

1

1

1*1/2

1+1*1/2

1*1/2*1/3

1+1*1/2+ 1*1/2*1/3

1*1/2*1/3*1/4

1+1*1/2+ 1*1/2*1/3+1*1/2*1/3*1/4   

.

.

.

      

猜你喜欢

转载自www.cnblogs.com/singlewang/p/8975187.html