import java.math.BigInteger;利用BigInteger来进行大数运算。常用的方法如下:
取模 mod(BigInteger m)
加法 add(BigInteger m)
减法 subtract(BigInteger m)
乘法 multiply(BigInteger m)
除法 divide(BigInteger m)
绝对值abs(BigInteger m)
取余remainder(BigInteger m)
相反数negate(BigInteger m)
x次方 pow(int x)
valueOf(long x),例如BigInteger m=BigInteger.valueOf(121321321)。
以下代码是用于求解S=1!+2!+3!+...+202320232023!结果的后9位的Java代码。
import java.math.BigInteger;
import java.util.Scanner;
public class sy {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
BigInteger s=new BigInteger("0"),m=new BigInteger("1000000000");
for(int i=1;i<=40;i++)
{
BigInteger x=BigInteger.valueOf(i);
s=s.add(jc(i));
}
System.out.println(s.mod(m));
scan.close();
}
static BigInteger jc(int x){
BigInteger s=new BigInteger("1");
for(int i=1;i<=x;i++)
{
BigInteger y=BigInteger.valueOf(i);
s=s.multiply(y);
}
return s;
}
}