1 条题解

  • 0
    @ 2025-8-24 21:18:03

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 21:18:02,当前版本为作者最后更新于2025-03-10 15:56:37,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    欢迎报名洛谷网校,期待和大家一起进步!

    本题考察数论。

    n!n! 的末尾有多少个 00,相当于乘上了多少个 2×52\times 5(也就是 1010),这里需要注意,对于每个乘数都需要质因数分解,例如 8=2×2×28=2\times 2\times 210=2×510=2\times 5

    由于乘上的 22 肯定比乘上的 55 多,因此只需考察一共乘上了多少个 55。在 nn 以内,一共有 n÷5n\div 555 的倍数。然而,25=5×525=5\times 5,应该还需对答案有一次贡献;125=5×5×5125=5\times 5\times 5,还需要对答案有一次贡献……因此,答案就是:nn 以内有多少个 5,25,125,625,5,25,125,625,\dots 的倍数。可以使用循环语句完成这一题。

    参考代码:

    while (n > 0) {
        count += n / 5;
        n /= 5;
    }
    
    • 1

    [四川青少年 C++ 算法设计大赛 2024] 4-5 年级组第 7 题

    信息

    ID
    11654
    时间
    500ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者