递推
C++ 代码
#include <iostream>
using namespace std;
const int N = 1e6+10;
int f[N];
const int MOD = 998244353;
int main() {
int n;
cin >> n;
f[1] = 0;
int p = 1; // 代表阶乘
for (int i = 1; i < n; ++i) {
p = 1ll * p * i % MOD;
f[i + 1] = (1ll * i * (i + 1) / 2 * p + 1ll * f[i] * (i + 1) )% MOD;
f[i + 1] %= MOD;
}
cout << f[n] << '\n';
return 0;
}