洛谷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()。在循环体中,使用解引用运算符*来获取迭代器指向的元素,并输出它们。

相关推荐
W_chuanqi4 分钟前
RDEx:一种效果驱动的混合单目标优化器,自适应选择与融合多种算子与策略
人工智能·算法·机器学习·性能优化
ftpeak7 分钟前
《Cargo 参考手册》第二十二章:发布命令
开发语言·rust
L_090718 分钟前
【Algorithm】二分查找算法
c++·算法·leetcode
luckyPian21 分钟前
学习go语言
开发语言·学习·golang
靠近彗星21 分钟前
3.3栈与队列的应用
数据结构·算法
祁同伟.1 小时前
【C++】多态
开发语言·c++
rechol1 小时前
C++ 继承笔记
java·c++·笔记
朱嘉鼎2 小时前
C语言之可变参函数
c语言·开发语言
SunkingYang2 小时前
详细介绍C++中捕获异常类型的方式有哪些,分别用于哪些情形,哪些异常捕获可用于通过OLE操作excel异常
c++·excel·mfc·异常捕获·comerror
while(1){yan}2 小时前
数据结构之链表
数据结构·链表