【java】 1到100阶乘之和 大数计算

本次计算涉及阶乘,使用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.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

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普朗克的小铁拳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值