【PTA】练习3-5 输出闰年(c)

题目描述

输出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!

tip

这道题别的没什么,但让我对闰年和世纪的划分有了一个清晰的认识( ̄▽ ̄")

  • 闰年分为普通闰年和世纪闰年。
    普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年。(如2004年就是闰年)
    世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年)
  • 世纪,指计算年代的单位,一个世纪代表一百年,通常是指连续的一百年和十个共享位数的年代。
    第一世纪从公元1年到公元100年,而20世纪则从公元1901年到公元2000年,因此2001年是21世纪的第一年。

代码

#include

int main(){
    int year;
    scanf("%d",&year);
    int count=0;
    if(year<=2000||year>2100){
        printf("Invalid year!");
    }
    else{
        for(int i=2004;i<=year;i+=4){
            if((i%4==0&&i%100!=0)||i%400==0){
                printf("%d\n",i);
                count++;
            }
        }
        if(count==0){
        	printf("None");
    	}
    }
    return 0;
}

你可能感兴趣的:(【PTA】练习3-5 输出闰年(c))