题目要求后9位数字,直接运算会超出long类型限制,故可用模运算 即为当运算数字或者某数阶乘大于九位数字时取模1000000000。保证每次运算都在九位数以内即可得出答案。
public class Main {
static long N = 1000000000;
static long f(long x){
if(x == 1)
return 1;
long ans = x * f(x - 1);
if(ans > N){
ans = ans % N;
}
return ans;
}
public static void main(String[] args) {
long sum = 0;
for (int i = 1; i <= 2023L ; i++) {
sum += f(i);
if(sum > N){
sum = sum % N;
}
}
System.out.println(sum);
}
}
0 回复
0 转发
0 喜欢
3 阅读



