题解
收集瓶盖赢大奖
1 条题解
-
0
解题思路
这道题是一个“或者”关系的判断题。活动规则是:拥有 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