该题是一个填空题,我们可以通过规律来找到答案,由于从1到202320232023的阶层和过于庞大,当阶层和到第39项时,最后9位数已经保持不变了。
我们可以通过以下代码进行debug测试来发现这个规律
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger num = BigInteger.ONE;
BigInteger sum = BigInteger.ZERO;
for (long i = 1; i <= 202320232023l;i++){
num = num.multiply(BigInteger.valueOf(i));
sum = sum.add(num);
System.out.println(sum);
}
}
}
上面代码中用到了BigInteger类
为了描述更大的整数数据时,Java中提供了
BigInteger类
。BigInteger类型的数字范围较Integer,Long类型的数字范围要大得多,它支持任意精度的整数,在运算中 BigInteger 类型可以准确地表示任何大小的整数值而不会丢失任何信息。
其中BigInteger中,属性 One通常用于将值与 1 进行比较 BigInteger,或将 1 分配给 BigInteger对象,上述代码为为我们定义的变量赋值唯一,同理
BigInteger.ZERO
为为我们定义的变量赋值为0
BigInteger.valueOf ()
是将一个已知的整数转换为大整数。 valueOf 静态方法构造出的大整数限制在 long 的范围
multiply和add方法分别是进行两个BigInteger的 × 与 +
通过计算我们得知,每次循环num的值都为从1到当前循环i的阶层和,然后我们进行debug测试
当第39项时,再往后最后9位数已经不变量
所以答案为:420940313
版权声明:本文为m0_75278009原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。