B3846 [GESP样题 一级] 闰年求和

· · 题解

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

:::align{center} :::

思路分析

本题考查循环结构和分支结构。

假设读入的两个年份为 x,y。因为题目要求 不包含起始年份和终止年份,所以应当从 x+1 循环到 y-1

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

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

核心代码

x+1 循环到 y-1

for (int i = x + 1; i <= y - 1; i++)
{
    // 此处编写循环内的代码
}

判断年份 i 是否为闰年。

if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
{ // 若年份 i 是闰年
    ans = ans + i; // 答案加上 i
}