Java中使用for循环计算1+1/2!+1/3!+...+/20!代码示例

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:20   1904   0

本示例使用for循环计算1+1/2!+1/3!+...+/20!,并通过BigDecimal()类来提高精度

代码示例:

public class Example9 {
 public static void main(String[] args) {
  add1();
  add2();
 }
 
 /**
  * 
  * @Title add2
  * @Description 使用BigDecimal计算
  * @throws
  */
 public static void add2() {
  BigDecimal sum = new BigDecimal(0.0);
  BigDecimal num = new BigDecimal(1.0);
  for (int i = 1; i <= 20; i++) {
   num = num.multiply(new BigDecimal(1.0 / i));
   sum = sum.add(num);
  }
  System.out.println("使用BigDecimal计算结果为");
  System.out.println("1+1/2!+1/3!+...+/20! = " + sum);
 }
 
 /**
  * 
  * @Title add1
  * @Description 不使用BigDecimal计算
  * @throws
  */
 public static void add1() {
  double sum = 0;
  for (int i = 1; i <= 20; i++) {
   double num = 1;
   for (int j = 1; j <= i; j++) {
    num *= j;
   }
   sum += 1 / num;
  }
  System.out.println("不使用BigDecimal计算结果为");
  System.out.println("1+1/2!+1/3!+...+/20! = " + sum);
 }
}

输出结果为:

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP