理解闰年的条件后,再用代码来解这道题就很容易了。
地球绕太阳旋转一周为365天5小时48分46秒
按照一年365天来计算时,每年少算5小时48分46秒,每4年少算23小时15分4秒。
按照一年365天,每4年为一个闰年时(每4年加一天),则每400年将多算出3天。
因此我们按照每4年为一个闰年,于是每400年中有100个闰年,然后在这100个闰年中取消掉3个闰年。这样计算时间误差就小很多了。
例如,2000年~2400年,每4年有一个闰年,而2100年,2200年,2300年3个年份取消闰年
2000年——————2100年——————2200年——————2300年——————2400年
闰年———————不是闰年—————不是闰年——————不是闰年—————闰年
因此能被4整除的年份绝大部分为闰年,极少数不是闰年,如能被4整除且能被100整除(如2000,2100,2200,2300,2400)但不能被400整除的不是闰年(如2100,2200,2300)
因此程序只需在能被4整除的年份中选择能被100整除但不能被400整除的年份不予打印,其余打印出来即可。(显示闰年的方法很多,这只是其中一种,仅供参考)
#include<stdio.h>
int main()
{
int year = 2000;
for(year = 2000;year <= 2500; year ++)
{
if(year%4 == 0)
{
if(year%100 == 0 && year%400 != 0)
{
/*none*/
}
else
{
printf("%d ",year);
}
}
}
return 0;
}