题目
1.最开始写了很久都没有写出来,发现用long类型的话数据还是太大了,就去网上找更大类型的数据,BigInteger,后来发现在几十位之和数据的后几位都一样了,并不需要去算202320232023这么大的数字
2.value.of((参数):将括号里的参数转换成指定的数据类型,
BigInteger类型的数据相加要用add(),相减要用subtract(),相乘multiply(),相除用divide(),取模mod(),求余remainder(),
3,正确代码
import java.math.BigInteger;
public class jiechengqiuhe {
public static void main(String[] args) {
//定义一个sum来存放阶乘之和
BigInteger sum= new BigInteger("0");
//定义一个one来存放阶乘
BigInteger one= new BigInteger("1");
//并不用循环202320232023次去算出结果
for(int i=1;i<50;i++){
//求阶乘
one=one.multiply(BigInteger.valueOf(i));
//阶乘之和相加
sum=sum.add(one);
}
//将最后的结果转换为字符串,便于取得最后的九位数字
String a=String.valueOf(sum);
//用substring方法来算截取字符串
String s= a.substring(a.length()-9,a.length());
System.out.println(s);
}
}
4.输出结果为
420940313