题解:P12323 [蓝桥杯 2023 省 Java B] 阶乘求和

· · 题解

解题思路

显然直接算数字很大,考虑到阶乘很大时,后面 9 位全是 0,因此可以写个简单的程序看看大概多少的阶乘末尾 9 位都是 0。结果大概 3050 之间。非常的小。直接模拟边算边模即可。

代码实现

#include <bits/stdc++.h>
using namespace std;
long long s = 0, jc = 1;
long long MOD = 1e9;
int main() {
    for (int i = 2; i <= 50; i++) {
        s = (s + jc) % MOD;
        jc = (jc * i) % MOD;
    }
    cout << s;
    return 0;
}