B3971 [语言月赛 202405] 闰年 题解

· · 题解

Source & Knowledge

2024 年 5 月语言月赛,由洛谷网校入门计划/基础计划提供。

题目大意

给定一些真闰年的判定条件,请你判断一个年份是否是真闰年

题目分析

这题相当于是判断闰年的加强版。由于判断真闰年的条件有很多,我们考虑使用分支语句。

阅读题面可知,如果一个年份 y真闰年,那么一定满足以下条件之一:

所以,我们可以开一个 bool 类型的变量 ok,表示这个年份是否是真闰年,初始将 ok 赋值为 false

bool ok = false;

然后读入年份 y,用分支语句分别判断以上三个条件,满足其中一个条件就将 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,就能知道 y 是否是真闰年了:

if(ok) cout << "Yes\n";
else cout << "No\n";

视频讲解