1 条题解

  • -3
    @ 2022-12-20 19:09:52

    这道题very简单就是嵌套循环+高精度乘。

    我发现一个奇妙的规律:n!,这个n越大,结果尾部的“0”就越多。

    AC Code:

    #include <bits/stdc++.h>
    using namespace std;
    short n , ans[100000] = {0 , 1};//short节省空间
    int main()
    {
        cin >> n;
        for (int i = 1 ; i <= n ; i++)
        {
            //高精乘
            for (int j = 1 ; j <= 100000 ; j++) ans[j] *= i;
            //进位问题  
            for (int j = 1 ; j <= 100000 ; j++)
            {
                if (ans[j] >= 10)
                {
                    ans[j + 1] += ans[j] / 10;
                    ans[j] %= 10;
                }
            }
        }
        //找到最高位
        int top = 100000;
        while (ans[top] == 0) top--;
        //倒序输出
        for (int i = top ; i >= 1 ; i--) cout << ans[i];
        return 0;
    }
    
    • @ 2022-12-20 19:10:14

      PS:又一次过属实没想到

    • @ 2024-6-2 17:06:16

      请问这个就是最终答案吗?好像过不了呢👀️

  • 1

信息

ID
282
时间
1000ms
内存
16MiB
难度
6
标签
递交数
180
已通过
53
上传者