输出 21 世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被 4 整除但不能被 100 整除、或者能被 400 整除。
输入格式:
输入在一行中给出 21 世纪的某个截止年份。
输出格式:
逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非 21 世纪的年份则输出 “Invalid year!”。若不存在任何闰年,则输出 “None”。
输入样例1:
2048
输出样例1:
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
输入样例2:
2000
输出样例2:
Invalid year!
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/12/exam/problems/276
提交:
题解:
#include<stdio.h>
/*
* 判断传入的 year 是否是闰年:[1]是 [0]不是
*/
int leap(int year) {
return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? 1 : 0;
}
int main(void) {
int year;
scanf("%d", &year);
// 非 21 世纪的年份则输出 "Invalid year!"
if (year <= 2000 || year > 2100) {
printf("Invalid year!");
return 0;
}
// 记录 [2001, year] 之间是否存在闰年:[1]存在 [0]不存在
int flag = 0;
for (int i = 2001; i <= year; i++) {
if (leap(i)) {
printf("%d\n", i);
flag = 1;
}
}
if (flag == 0) {
printf("None");
}
return 0;
}