2023年第十四届蓝桥杯JavaB组省赛真题(A、阶乘求和)
一、题目内容
题目描述:
令 S = 1! + 2! + 3! + … + 202320232023!
求 S 的末尾 9 位数字。
提示:答案首位不为 0 。
二、思路分析
直接使用BigInteger进行求解,但是发现规律为求40!的阶层的时候,后面9位就不再变化了。(主要是202320232023!计算半天也没跑出来)
三、代码实现
public static void main(String[] args) {BigInteger sum = BigInteger.valueOf(0);for (int i=1;i <= 40;i++){BigInteger a = BigInteger.valueOf(1);for (int j = 1; j <= i;j++) {a = a.multiply(BigInteger.valueOf(j));}sum = sum.add(a);}System.out.println(sum);}