输出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!
分析:
-
首先,通过
scanf
函数读取用户输入的年份n
。 -
接着,进行一系列的条件判断来决定如何处理这个年份:
- 如果
n
小于等于2000或大于2100,那么打印"Invalid year!"并结束程序,因为不在合理的年份范围内。 - 如果
n
在2001和2003之间(包括2001但不包括2003),输出"None",因为在这个范围内没有闰年。
- 如果
-
如果上述条件都不满足,那么进入一个
for
循环,从2003开始到n
结束:- 在这个循环中,每个年份都会检查是否为闰年。如果满足以下条件之一:能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年,将其打印出来。
-
程序结束。
C语言:
#include <stdio.h>
int main ()
{
int n;
scanf("%d",&n);
if(n<=2000 || n>2100){
printf("Invalid year!");
return 0;
}else if(n<=2003 && n>=2001){
printf("None");
}
for(int i=2003;i<=n;i++){
if(i%4==0 && i%100!=0 || i%400==0){
printf("%d\n",i);
}
}
return 0;
}
总结:
这段代码的主要功能是根据用户输入的年份,打印出从2003年到这个年份之间的所有闰年。如果用户输入的年份不满足规定的范围或条件,程序会输出错误信息或"None"。