#P5711. 【深基3.例3】闰年判断
【深基3.例3】闰年判断
【深基3.例3】闰年判断
题目来源
洛谷 P5711
题目描述
输入一个年份,判断这一年是否是闰年,如果是输出 ,否则输出 。
年以来,闰年的定义:
普通闰年:公历年份是 的倍数,且不是 的倍数的,为闰年(如 年、 年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是 的倍数才是闰年(如 年不是闰年, 年是闰年)。
输入格式
输入一个正整数 ,表示年份。
输出格式
输出一行。如果输入的年份是闰年则输出 ,否则输出 。
样例输入 1
1926
样例输出 1
0
样例输入 2
1900
样例输出 2
0
样例输入 3
2000
样例输出 3
1
样例输入 4
1996
样例输出 4
1
提示
一、&& 的优先级高于 ||
a && b || c // 等价于 (a && b) || c
a || b && c // 等价于 a || (b && c)
所以在 a || b && c 里,会先算 b && c,再和 a 取或。这经常和人的直觉相反。
二、复杂条件一律加括号
if ((a > 0 || b > 0) && c > 0) { ... }
加括号有三个好处:不依赖记忆、读代码的人一眼看懂、改条件时不容易出错。
三、比较运算符的优先级高于 && 和 ||
n > 0 && n < 10 // 等价于 (n > 0) && (n < 10)
所以比较可以不加括号,但混用 && 和 || 时必须加。
四、常见错误
-
以为
&&和||同级、从左往右算; -
写出
a || b && c却期望(a || b) && c; -
在
||两边写了不完整的条件。 -
闰年两句话:能被 4 整除且不能被 100 整除;或者能被 400 整除。
-
把这两句话分别写成两个条件,再用「或者」连起来,注意括号。
自查:用 1900(不是)、2000(是)、1996(是)、1926(不是)四个样例验证。