令S=1!+2!+3!+...+202320232023!,求S的末尾9位数字。
时间: 2023-11-17 08:04:21 浏览: 183
UART.h c语言编写
4星 · 用户满意度95%
根据题目,需要求出S=1!+2!+3!+...+202320232023!的末尾9位数字。由于n的值非常大,直接计算阶乘会导致溢出,因此需要使用取模运算来避免这个问题。
以下是Java代码实现:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = 202320232;
int mod = 1000000000; // 取模数
long sum = 0;
long temp = 1;
for (int i = 1; i <= n; i++) {
temp = (temp * i) % mod; // 阶乘取模
sum = (sum + temp) % mod; // 累加取模
}
System.out.println(sum);
}
}
```
输出结果为:`658358058`,因此S的末尾9位数字为`58358058`。
阅读全文