题目 P5711
输入一个年份,判断这一年是否是闰年,如果是输出 1,否则输出0。
1582 年以来,闰年的定义:
普通闰年:公历年份是 4 的倍数,且不是 100 的倍数的,为闰年(如 2004 年、2020 年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是 400 的倍数才是闰年(如 1900 年不是闰年,(2000) 年是闰年)。
题解
题目上已经给出了 1582 年以来闰年的定义,而且年份 \ge 1582,因此直接做即可。
这里介绍一下比 if-else
条件语句更快的方法:三目运算符。
三目运算符的语法是这样的:条件?表达式1:表达式2
,意思是如果条件成立,则最终结果为表达式 1,否则为表达式 2。注意隔开两个表达式的是冒号,不是分号。
与 if-else
语句相同的是,三目运算符的条件也能嵌套。也就是说,(n%4==0&&n%100!=0)||n%400==0?1:0
这样的语法是正确的。
最后注意,cout
输出的时候,表达式外面要加一层括号,防止编译器搞错运算顺序导致报错。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
cout<<((n%4==0&&n%100!=0)||n%400==0?1:0)<<endl;
}