【GESP】C++一级练习luogu-B3846,闰年求和
GESP一级知识点for
循环和if
分支判断语句的练习,个人认为接近一级真题难度的题,对于闰年的判断和定义变量来求和对于初学者是个小小的难点。
luogu-B3846
题目要求
描述
小明刚刚学习了如何判断平年和闰年,他想知道两个年份之间(不包含起始年份和终止年份)的所有闰年年份具体数字之和。你能帮帮他吗?
输入
输入一行,包含两个整数,分别表示起始年份和终止年份。约定年份在1 到 2022之间。
输出
输出一行,包含一个整数,表示闰年年份具体数字之和。
输入样例
2018 2022
输出样例
2020
题目分析
- 读入两个整型变量,分别表示起始年份和终止年份
- 使用
for
循环遍历这两个年份之间的所有年份(不包含起始和终止年份) - 对于每一年,判断是否为闰年:
- 闰年的条件:能被4整除但不能被100整除,或者能被400整除
- 如果是闰年,将该年份的各个数字相加,累加到总和中
- 最后输出总和
这道题目涉及了以下知识点:
- 输入输出操作
- for循环的使用
- if条件判断
- 闰年的判断条件
- 数学运算(求和、取模)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdio>
using namespace std;
int main() {
int a, b;
// 读入起始年份和终止年份
scanf("%d%d", &a, &b);
// 初始化闰年年份数字之和
int ans = 0;
// 遍历起始年份和终止年份之间的所有年份(不含头尾)
for (a + 1; a < b; a++) {
// 判断是否为闰年
if ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0) {
// 如果是闰年,将年份加到总和中
ans += a;
}
}
// 输出闰年年份数字之和
printf("%d", ans);
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
本文由作者按照 CC BY 4.0 进行授权