洛谷C++简单题小练习day14—闰年推算小程序

day14--闰年推算小程序--2.18

习题概述

题目描述

输入 x,y,输出 x,y 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。

输入格式

输入两个正整数 x,y,以空格隔开。

输出格式

第一行输出一个正整数,表示 x,y 区间中闰年个数。

第二行输出若干个正整数,按照年份单调递增的顺序输出所有闰年年份数字。

代码部分

复制代码
#include<bits/stdc++.h>
using namespace std;
bool isLeapYear(int year)//判断是否为闰年函数 
{
    if (year % 4 != 0) {
        return false;//不能被4整除 不是 
    }
    else if (year % 100 != 0) {
        return true;//可被4整除但不能被100整除 是 
    }
    else if (year % 400 != 0) {
        return false;//可被100整除但不能被400整除 不是 
    }
    else {
        return true;
    }
}

int main() {
    int x, y;
    cin >> x >> y;

    vector<int> leapYears;//创建一个存储闰年的向量
    int count = 0;//计数器

    for (int year = x; year <= y; year++)//循环遍历输入范围内的年份
	{
        if (isLeapYear(year)) 
		{
            count++;
        //是闰年增加计数器count并将该年份添加到leapYears向量中。
            leapYears.push_back(year);
        }
    }
    cout << count <<endl;//输出闰年总数量 
    //遍历leapYears向量,输出所有的闰年年份 
    for (int i = 0; i < leapYears.size(); i++) 
	{
        cout << leapYears[i] << " ";
    }
    cout <<endl;
    return 0;
}

心得体会

  1. 闰年是指具有366天的年份,相对于平年的365天来说多出了一天。闰年的判断规则如下:

1)如果年份能够被4整除,但不能被100整除,则是闰年。

2)如果年份能够同时被4和100整除,但不能被400整除,则不是闰年。

3)如果年份能够同时被4、100和400整除,则是闰年。

以下是一些示例:

·2000年是闰年,因为它可以被4、100和400整除。

·1900年不是闰年,因为它可以被4和100整除,但不能被400整除。

·2024年是闰年,因为它可以被4整除,但不能被100整除。

  1. 在这段代码中,使用了容器(vector)来存储闰年。使用容器的好处是可以动态地存储和管理数据,而无需提前知道要存储多少个元素。

在这段代码中,使用了一个名为leapYears的向量来存储闰年。每当遇到一个闰年时,将该年份添加到向量中。这样,最后就可以通过遍历向量来输出所有的闰年。

3.对于这段代码中使用的向量容器,可以使用下标运算符[]来访问并输出其中的元素。例如,要输出向量leapYears中的第i个元素,可以使用以下语句:

cout << leapYears[i];

这将输出向量中的第i个元素。需要注意的是,向量的下标从0开始,因此第一个元素的下标为0,第二个元素的下标为1,以此类推。也可以使用迭代器来遍历容器中的所有元素,这是使用容器时更常见的做法。例如,可以使用以下代码输出向量中的所有元素:

复制代码
for (vector<int>::iterator it = leapYears.begin(); it != leapYears.end(); ++it)
 { cout << *it << " "; }

这个循环使用迭代器it来遍历向量中的所有元素。it首先被初始化为向量的起始位置leapYears.begin(),然后在每次迭代中递增,直到it等于向量的结束位置leapYears.end()。在循环体中,使用解引用运算符*来获取迭代器指向的元素,并输出它们。

相关推荐
海天鹰15 小时前
PHP上传文件
android·开发语言·php
稚南城才子,乌衣巷风流15 小时前
动态开点:原理、实现与应用场景
数据结构·算法
yyds_yyd_1008615 小时前
1464. 数组中两元素的最大乘积(2026.07.27)
数据结构·c++·算法·leetcode
KaMeidebaby16 小时前
卡梅德生物技术快报 | 核酸适配体文库测序:核酸适配体文库测序的技术原理、实验流程与数据解析
前端·网络·数据库·人工智能·算法
Yeauty16 小时前
渲染成图再 CLI 拼接,还是进程内直推?Rust 帧到视频的两条路
开发语言·rust·音视频
geovindu17 小时前
CSharp: Breadth First Search Algorithm and Depth First Search Algorithm
开发语言·后端·算法·c#·.net·搜索算法
库克克17 小时前
【C++】set 与multiset
开发语言·c++
Wang's Blog17 小时前
Go-Zero项目开发34: 微服务超时控制与重试机制实践
开发语言·微服务·golang·go-zero
Mortalbreeze18 小时前
深入 Linux Socket 编程:端口号、网络字节序与 struct sockaddr 详解
linux·服务器·网络·c++
ekkoalex18 小时前
训练框架以及算法实现的框架
算法