1 条题解

  • 0
    @ 2025-8-24 21:16:11

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

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

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

    以下是正文


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

    本题考察循环结构。

    题目要求读入一些数,判断这些数的乘积是否超过 10610^6。因此,可以使用循环语句读入这 nn 个正整数,将其累乘,判断乘积结果。

    需要注意,这些数的乘积可能是非常大的,假设 5050 个数字每个数字都是 100100,那么其结果是 10050100^{50},无法使用任何的基本数据类型存储。因此如果乘积的结果大于 10610^6,就要果断地输出 >1000000 并且退出循环,否则可能会出现溢出导致计算结果不正确。

    参考代码:

    int prod = 1;
    for (int i = 1; i <= n; i++) {
        int a;
        cin >> a;
        prod *= a;
        if (prod > 1000000) { // 如果乘积结果大于 1000000,则直接退出循环
            cout << ">1000000";
            break;
        }
    }
    //如果乘积结果不超过 1000000,则输出结果,代码略
    
    • 1

    信息

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