#t228. 收集瓶盖赢大奖

收集瓶盖赢大奖

收集瓶盖赢大奖

题目描述

某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有 10 \,10\,个印有幸运、或 20 \,20\,个印有鼓励的瓶盖,就可以兑换一个神秘大奖。

现分别给出你拥有的印有幸运和鼓励的瓶盖数,判断是否可以去兑换大奖。

输入格式

一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空格隔开。

输出格式

一行。若可以兑换大奖,输出 1\,1,否则输出 0\,0。

样例输入

11 19

样例输出

1

提示

一、|| 是「或者」

两边只要有一个成立,整个条件就成立:

int x = 3;
if (x == 3 || x == 5) {
    printf("hit\n");
}

真值表:

左边 右边 || 结果
真 真 真
假
假 真
假

二、和 && 的对比

运算符 读作 什么时候为真
&& 并且 两边都真
|| 或者 至少一边真

判断「在区间内」用 &&(同时满足上下界);判断「等于几个值中的某一个」用 ||。

三、短路求值

左边为真时,右边不再计算。所以 x == 0 || 10 / x > 2 这种写法是安全的——x 为 0 时不会去做除法。

四、常见错误

  • 用单个 |(那是位运算,两边都会算,结果也不同);
  • 用 or;
  • 该用 && 的地方用了 ||:x > 0 || x < 10 对任何数都成立。

五、自检

把条件的四种真假组合各代一组数据进去,看结果是否符合预期。

  • 兑奖条件是「幸运 ≥10 或者 鼓励 ≥20」,用 || 连接两个比较。
  • 输出 1 或 0。

自查:用 11 19(幸运够)和 9 20(鼓励够)分别验证;两个都不够时应输出 0。