输出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!
思路:一开始是一个分支语句:1,输入不合法(不在21世纪范围内即不属于2001-2100);2、区间没有闰年(即输入的年数小于2004),3、区间内有闰年
对于区间内有闰年的输入,用一个循环输出所有的闰年。此处每次循环直接让i=i+4,不能整除100的话(其实能整除100的也只有2100年)就是闰年了。
#include<stdio.h>
int main(){
int year;
scanf("%d",&year);
if( year<2001 || year>2100){
printf("Invalid year!");
}else if(year<2004){
printf("None");
}
else{
int i;
for(i=2004;i<=year;i=i+4){
if(i%100==0){
continue;
}
if(year-i<4)
{printf("%d",i);
}
else
{printf("%d\n",i);
}
}
}
return 0;
}