java中大数(100!+..+200!)表示问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:46:35
要计算100!+101!+...+200!的和,结果的数是非常大的,一般的数据类型表示不出来,请问该用什么方法表示啊?最好写上代码。谢谢

import java.math.BigInteger;

public class Test {
public static BigInteger factorial(int num) throws IllegalArgumentException {
if(num < 0) throw new IllegalArgumentException("参数需大于等于0");
if(num == 0) return BigInteger.valueOf(1);
BigInteger result = BigInteger.valueOf(1);
for(int i=1; i<=num; i++) {
result = result.multiply(BigInteger.valueOf(i));
}
return result;
}

public static void main(String[] args) throws Exception {
BigInteger result = BigInteger.valueOf(0);
for(int i=100; i<=200; i++) {
result = result.add(factorial(i));
}

System.out.println(result);
}
}

结果:
7926210728149431589375749544176960545022734705680777470078877438622850479415815355414987183122750862756798933430760138623615796806709725279760092790363485519295508276076011454508760145303595300087339476992749043828254446921129933420589666680173696