求经过的闰年数
编写函数,求从公元 y 1年开始到公元 y 2年之间经过的闰年总数 n。按照现行历法(格里高利历):四年一闰,百年不闰,四百年再闰。即:年数是 4 的倍数且不是 100 的倍数,或者年数是 400 的倍数,则为闰年,否则为平年。
注:为简化程序设计,作以下限制
年数一律为正整数(即不考虑公元前的情况);
不考虑历法演变过程(即假定从一开始就一直使用现行的历法)。
我的代码:
#include<stdio.h>
int main()
{
int x,y,n=0;
scanf("%d%d",&x,&y);
n=(y-x+1)/400*97;
for(int i=x%400;i<=y%400;i++)
{
if((i%4==0&&i%100!=0)||i%400==0)
n++;
}
printf("%d",n);
return 0;
}
这里用求余是因为怕运行会超时,但是还是有两个测试点是错的:
希望有人改正一下。