OneCoder Avatar
OneCodercoderli.com · 962 篇博文
一级

C++ 算法考级专栏

真题分析、矩阵探测、递归回溯与基础语法

🎨 视觉封面

【GESP】C++一级练习luogu-B3846,闰年求和

📅 2024-10-22·✍️ OneCoder·计算中...·⏱️ 2 分钟
#GESP#C++#基础语句

GESP一级知识点for循环和if分支判断语句的练习,个人认为接近一级真题难度的题,对于闰年的判断定义变量来求和对于初学者是个小小的难点。

luogu-B3846

题目要求

描述

小明刚刚学习了如何判断平年和闰年,他想知道两个年份之间(不包含起始年份和终止年份)的所有闰年年份具体数字之和。你能帮帮他吗?

输入

输入一行,包含两个整数,分别表示起始年份和终止年份。约定年份在1 到 2022之间。

输出

输出一行,包含一个整数,表示闰年年份具体数字之和。

输入样例

2018 2022

输出样例

2020


题目分析

  • 读入两个整型变量,分别表示起始年份和终止年份
  • 使用for循环遍历这两个年份之间的所有年份(不包含起始和终止年份)
  • 对于每一年,判断是否为闰年:
    • 闰年的条件:能被4整除但不能被100整除,或者能被400整除
  • 如果是闰年,将该年份的各个数字相加,累加到总和中
  • 最后输出总和

这道题目涉及了以下知识点:

  • 输入输出操作
  • for循环的使用
  • if条件判断
  • 闰年的判断条件
  • 数学运算(求和、取模)
C++ 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;
}

💡 OneCoder 资源指引

所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI

🤝 技术交流与答疑

欢迎加入:C++ GESP/CSP 考级答疑群(688906745)Java/Python交流群(982860385),点击可直接加群。

📚

猜你想读 · 相关文章推荐

OneCoder

OneCoder (lihongzheshuai)

一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com

读者讨论与留言

0 条讨论
✨ 支持点击留言直接回复 · Markdown 引用格式
💬 还没有读者留言,快来成为第一个讨论者吧!