top1编程
← 返回题目
题解

收集瓶盖赢大奖

1 条题解

  • 0
    @ 2026-8-4 10:11:45

    解题思路

    这道题是一个“或者”关系的判断题。活动规则是:拥有 10 个“幸运”瓶盖,或者 20 个“鼓励”瓶盖,就能兑换一个神秘大奖。

    也就是说,只要满足下面两个条件中的任意一个,就可以去兑换:

    • 条件一:幸运瓶盖数 lucky 大于等于 10;
    • 条件二:鼓励瓶盖数 gu 大于等于 20。

    在程序里,“或者”用逻辑运算符 || 表示(读作“或”)。所以判断条件写成: lucky >= 10 || gu >= 20 只要这个条件成立(为真),就输出 1,表示可以去兑换大奖;否则输出 0。

    要注意的是:>= 表示“大于等于”,刚好拥有 10 个幸运瓶盖也是满足条件的。如果误写成 >(大于),那么只有 10 个幸运瓶盖的同学就换不到奖了。这是边界条件最容易出错的地方,做题时一定要把题目里的“10个”“20个”看清楚是“达到”还是“超过”。

    参考代码

    #include using namespace std;

    int main() { int lucky, gu; // lucky 是幸运瓶盖数,gu 是鼓励瓶盖数 cin >> lucky >> gu; // 读入两种瓶盖的数量

    if (lucky >= 10 || gu >= 20) {
        cout << 1 << endl;   // 满足任意一个条件,输出 1,可以兑换大奖
    } else {
        cout << 0 << endl;   // 两个条件都不满足,输出 0
    }
    return 0;
    

    }

    复杂度分析

    本题只读入两个整数,然后做一次比较和一次逻辑或运算就输出结果了,运算次数固定,与瓶盖数量的多少没有关系,所以时间复杂度是 O(1)。程序只用了两个 int 变量,空间占用固定,空间复杂度同样是 O(1)。

    • 1