【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
#include <cstdio>
using namespace std;
int main() {
int a, b;
scanf("%d%d", &a, &b);
int ans = 0;
for (int i = a + 1; i < b; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
ans += i;
}
}
printf("%d", ans);
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
本文由作者按照 CC BY 4.0 进行授权