1 solutions

  • 0
    @ 2024-1-6 1:34:42

    这道题要求维护最后五位数,我们只需要对答案取模100000即可,在Python中可以直接对答案取模,而C++没有自带高精度,只能在for循环的每一步都进行取模。 C++核心代码:

    int ans = 1;// 初始化为1
    for (int i = 2; i <= 2021; ++i)
    		if (i % 2 == 1)// 别忘了双阶乘的定义
    			ans = ans * i % 100000;
               // 累乘的同时取模防止溢出
    	cout << ans;
    

    Python核心代码

    ans
    for i in range(2, 2022):
        if i % 2 == 1:# 双阶乘的定义
            ans = ans * i# 累乘法
    
    print(ans % 100000)# 直接输出取模的答案
    

    取出一个数字的最后n位是一个技巧,只需要对这个数字取模10的n次方就可以。

    • 1

    Information

    ID
    15236
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    2
    Tags
    # Submissions
    54
    Accepted
    10
    Uploaded By