题目描述
输入 x , y x,y x,y,输出 [ x , y ] [x,y] [x,y] 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。
输入格式
输入两个正整数 x , y x,y x,y,以空格隔开。
输出格式
第一行输出一个正整数,表示 [ x , y ] [x,y] [x,y] 区间中闰年个数。
第二行输出若干个正整数,按照年份单调递增的顺序输出所有闰年年份数字。
输入数据 1
1989 2001
输出数据 1
3
1992 1996 2000
提示
数据保证, 1582 ≤ y ≤ 3000 1582 \le y \le 3000 1582≤y≤3000。
代码
#include <cstdio>
int x, y, a[3000], cnt;
bool r(int n) {
return ((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0));
}
int main() {
scanf("%d %d", &x, &y);
for (int i = x; i <= y; i++)
if (r(i))
a[++cnt] = i;
printf("%d\n", cnt);
for(int i = 1; i <= cnt; i++)
printf("%d ", a[i]);
return 0;
}