文章

【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 进行授权