B3971 [语言月赛 202405] 闰年 题解
ShiRoZeTsu · · 题解
Source & Knowledge
2024 年 5 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
给定一些真闰年的判定条件,请你判断一个年份是否是真闰年。
题目分析
这题相当于是判断闰年的加强版。由于判断真闰年的条件有很多,我们考虑使用分支语句。
阅读题面可知,如果一个年份
- 是
4 的倍数,但不是100 的倍数; - 是
400 的倍数,但不是3200 的倍数; - 是
172800 的倍数。
所以,我们可以开一个 bool 类型的变量 ok,表示这个年份是否是真闰年,初始将 ok 赋值为 false:
bool ok = false;
然后读入年份 ok 赋值为 true:
int y;
cin >> y;
//y 是 4 的倍数,等价于 y 对 4 取余为 0,其余同理
if(y%4 == 0 && y%100 != 0) ok = true;
else if(y%400 == 0 && y%3200 != 0) ok = true;
else if(y%172800 == 0) ok = true;
最后判断 ok 是否为 true,就能知道
if(ok) cout << "Yes\n";
else cout << "No\n";