*【C++语言:选择结构(if)】逻辑运算符综合 II[判断闰年(升级版)]
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
Description
【题意】来自题目 [CSP-S 2020 儒略日](/problem.php?id=2584)我们现行的公历为格里高利历(Gregorian calendar),它是在公元 1582 年由教皇格里高利十三世在原有的儒略历(Julian calendar)的基础上修改得到的。具体而言,现行的公历日期按照以下规则计算:
- 公元 1582 年 10 月 15 日(含)以后:适用格里高利历,每年一月 天、 二月 天或 天、三月 天、四月 天、五月 天、六月 天、七月 天、八月 天、九月 天、十月 天、十一月 天、十二月 天。其中,闰年的二月为 天,平年为 天。当年份是 的倍数,或日期年份是 的倍数但不是 的倍数时,该年为闰年。
- 公元 1582 年 10 月 5 日(含)至 10 月 14 日(含):不存在,这些日期被删除,该年 10 月 4 日之后为 10 月 15 日。
- 公元 1582 年 10 月 4 日(含)以前:适用儒略历,每月天数与格里高利历相同,但只要年份是 的倍数就是闰年。
- 尽管儒略历于公元前 45 年才开始实行,且初期经过若干次调整,但今天人类习惯于按照儒略历最终的规则反推一切 1582 年 10 月 4 日之前的时间。注意,公元零年并不存在,即公元前 1 年的下一年是公元 1 年。因此公元前 1 年、前 5 年、前 9 年、前 13 年……以此类推的年份应视为闰年。
给出一个年份 ( 且 ),求这一年的天数,其中若 则表示公元前 年。
【输入格式】
一行一个整数 。
【输出格式】
一行一个整数 ,表示这一年的天数。
【样例输入1】
1900
【样例输出1】
365
【样例输入2】
2000
【样例输出2】
366