1 条题解

  • 0
    @ 2025-8-24 21:14:38

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 一扶苏一
    休息结束。邮箱 yifusuyi@qq.com

    搬运于2025-08-24 21:14:37,当前版本为作者最后更新于2018-04-30 14:35:16,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    [语言月赛202303] Factorial B 题解

    Source & Knowledge

    2023 年 3 月语言月赛,由洛谷网校入门计划/基础计划提供。

    本题考察分支结构和简单数学推导。

    文字题解

    题目大意

    给定整数 nn,判定 n!=1×2×3××nn! = 1 \times 2 \times 3 \times \dots \times n 是不是 1212 的倍数。

    0n10180 \leq n \leq 10^{18}

    解析

    容易计算得出 0!=10! = 11!=11! = 12!=22! = 23!=63! = 6 都不是 1212 的倍数。

    而 $4! = 1 \times 2 \times 3 \times 4 = 1 \times 2 \times \color{red}{(3 \times 4)}$ =1×2×12= 1 \times 2 \times \color{red}{12}

    所以 4!4!1212 的倍数。

    n>4n > 4 时,$n! = 1 \times 2 \times 3 \times 4 \times \dots \times n = 4! \times 5 \times 6 \times \dots \times n$,含有因子 4433,所以 n!n! 含有因子 4×3=124 \times 3 = 12,所以 n!n! 也是 1212 的倍数。

    综上:当 n3n \leq 3 时,n!n! 不是 1212 的倍数;n4n \geq 4 时,n!n!1212 的倍数。

    读入

    首先定义一个变量 nn。注意到输入规模是 0n10180 \leq n \leq 10^{18},而 int 能存储的范围只有大约 2020 亿(2×1092 \times 10^9),不能满足存储要求,而 long long 的存储上界大约是 9×10189 \times 10^{18},可以满足存储要求。因此要用 long long n 来声明变量 nn

    long long n;
    cin >> n;
    

    判定和输出

    可以使用 if 语句完成选择结构,其语法为 if(A) B else C,如果表达式 A 的值为真则执行语句(块)B,否则执行语句(块)C

    判断完后,对应输出 YesNo 即可,注意大小写。

    if (n <= 3) {
      cout << "No\n";
    } else {
      cout << "Yes\n";
    }
    

    视频题解

    完整代码请在视频中观看

    • 1

    信息

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