import java.util.*;
import java.lang.*;
import java.io.*;public class Main {public static void main(String[] args) {// 请在此处编写代码...
long MOD = (long) 1e9;
long res = 0;
long s = 1;
for(int i = 1;i <=40; i++){s = s * i % MOD;res = (res + s) % MOD;
}
System.out.println(res);}
}
求S 的末尾9位数字
观察位数变化,可以分析从5开始陆续末尾出现0,5的个数大于2,而且前40个刚好9个5的因子,其中25包含2个5
因此只需要分解一步,转换成前40个数的后9位阶乘之和即可,完美减少计算量
注意:9位数,应该使用long:202420242024
注意取余,排除不必要的计算量和存储