B3835 [GESP202303 一级] 每月天数 题解

· · 题解

欢迎大家报名洛谷网校的课程,期待和大家一起进步!

:::align{center} :::

思路分析

本题考查分支结构。

31 天的月份:1 月,3 月,5 月,7 月,8 月,10 月,12 月。\ 有 30 天的月份:4 月,6 月,9 月,11 月\ 有 29 天的月份:闰年的 2 月\ 有 28 天的月份:平年的 2

闰年:年份是 400 的倍数,或者年份是 4 的倍数且不是 100 的倍数。

例如,1900 年不是闰年,2000 年是闰年,2004 年是闰年。

核心代码

判断是否为 31 天的月份:

if (B == 1 || B == 3 || B == 5 || B == 7 || B == 8 || B == 10 || B == 12)
{ // 判断一个月 31 天的情况
        cout << 31;
}
// 判断一个月 30 天的情况请自行完成

对于 2 月,判断是否为闰年:

if (A % 400 == 0 || (A % 4 == 0 && A % 100 != 0))
{ // 是闰年
    cout << 29;
}
else
{ // 不是闰年
    cout << 28;
}