题目描述
输入 x,yx,y,输出 [x,y][x,y] 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。
输入格式
输入两个正整数 x,yx,y,以空格隔开。
输出格式
第一行输出一个正整数,表示 [x,y][x,y] 区间中闰年个数。
第二行输出若干个正整数,按照年份单调递增的顺序输出所有闰年年份数字。
输入输出样例
输入 #1复制
1989 2001
输出 #1复制
3 1992 1996 2000
说明/提示
数据保证,1582 ≤x < y ≤ 3000。
注意
闰年的判断条件为:
n % 4 == 0 && n % 100 != 0 || n % 400 == 0
代码
#include<bits/stdc++.h>
using namespace std;
int run(int n) //判断闰年
{
if(n % 4 == 0&&n % 100 != 0||n % 400 == 0)return 1;
return 0;
}
int main()
{
int a,b,runs[1000],s=0;
cin >> a >> b;
for(int i = a;i <= b;i++) //遍历从a到b的所有数字
{
if(run(i)) //如果i为闰年
{
runs[s] = i; //将i存入到数组的第s号位
s += 1; // s加等1
}
}
cout << s << endl;
for(int i = 0; i < s;i++) //遍历数组中的所有值
{
cout << runs[i] << " "; //输出
}
}