首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于java阶乘运算的,有一点始终不明白,请帮忙解释下多谢

2013-07-09 
关于java阶乘运算的,有一点始终不明白,请帮忙解释下谢谢。import java.math.BigDecimalpublic class Examp

关于java阶乘运算的,有一点始终不明白,请帮忙解释下谢谢。

import java.math.BigDecimal;

public class Example036 {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
BigDecimal sum=new BigDecimal(0.0);
//保存总和的变 量。
BigDecimal factorial=new BigDecimal(1.0);
//阶乘项的计算结果。
int i=1;
while(i<=1)//循环2次。
{

sum=sum.add(factorial);
//累加各项阶乘的和=1。
++i;
//i=2;
factorial=factorial.multiply(new BigDecimal(1.0/i));

}
System.out.println("1+1/2!+1/3!+....+1/20! 的结果是 \n"+sum);
//输出计算结果,因为要求和,所以要+的时sum.这个sum相当于sum=sum.add(factorial);

}

}


         ++i;
//i=2;
factorial=factorial.multiply(new BigDecimal(1.0/i));

我想问下,这个i++的变化和factorial=factorial.multiply(new BigDecimal(1.0/i));是有关系的吧,factorial=factorial.multiply(new BigDecimal(1.0/i));这个i是表示的什么呢?求详细解释,最好整句解释下谢谢。 Java
[解决办法]
factorial=factorial.multiply(new BigDecimal(1.0/i)); //这里还是执行的

1/2!就是1*(1/2)
1/3!就是1*(1/2)*(1/3)===>相当于1/2!*(1/3)啊.
1/4!就是1*(1/2)*(1/3)*(1/4)===>相当于1/3!*(1/4)啊.

每次循环都会累积下来.new BigDecimal(1.0/i)就是每次*1/i

热点排行