(1!+2!+...+n!)%998244353
时间: 2023-11-14 09:04:53 浏览: 170
题目描述:求1!+2!+...+n!对998244353取模的结果。
解题思路:可以使用循环累加的方法,每次计算阶乘并加到结果中,最后对998244353取模即可。
代码实现:
n = int(input())
res = 0
factorial = 1
for i in range(1, n+1):
factorial = factorial * i % 998244353
res = (res + factorial) % 998244353
print(res)
相关问题
求 (1! + 2! + 3! + ...... n!) % 998244353.
根据题目,我们需要求出 1! + 2! + 3! + ...... n! 的结果对 998244353 取模的值。我们可以使用循环来计算每个阶乘的值,并将它们相加。具体步骤如下:
1. 初始化变量 sum 为 0,变量 factorial 为 1。
2. 循环 n 次,每次循环中:
a. 将 sum 加上 factorial 的值。
b. 将 factorial 乘以循环变量 i 的值。
c. 对 factorial 取模,避免数值过大。
3. 对 sum 取模 998244353,得到最终结果。
(1! + 2! + 3! + ...... n!) % 998244353. n <= 1000000.
根据题目要求,我们需要求出 1! + 2! + 3! + ...... n! 的结果对 998244353 取模的值。我们可以使用循环来计算这个和,同时使用一个变量来记录阶乘的乘积。具体步骤如下:
1. 初始化变量 sum 和 factorial,分别为 0 和 1。
2. 从 1 到 n 循环,每次循环执行以下操作:
a. 将 factorial 乘以当前循环变量 i。
b. 将 sum 加上 factorial 的值。
c. 对 sum 和 factorial 分别取模,避免数值过大。
3. 返回 sum 对 998244353 取模的值。
代码实现如下:
```
int n = 1000000;
int mod = 998244353;
int sum = 0, factorial = 1;
for (int i = 1; i <= n; i++) {
factorial = (long long)factorial * i % mod;
sum = (sum + factorial) % mod;
}
return sum;
```
阅读全文