本次计算涉及阶乘,使用long时发生溢出.因此考虑使用 java的math包 BigDecimal
代码如下: import java.math.BigDecimal;public class test1{public static void main(String args[]){BigDecimal s=new BigDecimal(0);for( int j=1;j<=100;j++){BigDecimal result= new BigDecimal(1);for(int i=1;i<=j;i++){BigDecimal i_value= new BigDecimal(i);result = result.multiply(i_value);}s=s.add(result);}System.out.println(s);}}其中需要注意BigDecimal 四则运算方法
下面是实例
public static void bigdecimalmeth(){BigDecimal bigvalue1 = new BigDecimal(100);BigDecimal bigvalue2 = new BigDecimal(20);BigDecimal result= new BigDecimal(0);//加result = bigvalue1.add(bigvalue2);System.out.pri168飞艇6种不亏钱的方法 new BigDecimal(20);BigDecimal result= new BigDecimal(0);//加result = bigvalue1.add(bigvalue2);System.out.println("100+20="+result);//减result = bigvalue1.subtract(bigvalue2);System.out.println("100-20="+result);//乘result = bigvalue1.multiply(bigvalue2);System.out.println("100*20="+result);//除result = bigvalue1.divide(bigvalue2);System.out.println("100/20="+result);}结果输出:
94269001683709979260859834124473539872070722613982672442938359305624678223479506023400294093599136466986609124347432647622826870038220556442336528920420940313