按照现行历法(格里高利历):每四年一闰,逢百年不闰,逢四百年再闰。
即: 年数是 4 的倍数且不是 100 的倍数,或者年数是 400 的倍数,才是闰年,其余均为平年。
请编写程序,输入年份 y,计算公元 1 年到 y 年间的闰年总数 n。
输入格式
y
输出格式
n
输入样例
1995
我最初的代码
#include<stdio.h>
int ruennian(int x){
long long n=0;
for(long long i=1;i<=x;i++){
if((i%4 == 0 &&i%100!= 0)||(i%400 == 0))
n++;
}
return n;
}
int main(){
long long x=0;
scanf("%d",&x);
long long c=ruennian(x);
printf("%d\n",c);
return 0;
优化代码
#include<stdio.h>
int main(){
long long n,a,b,c;
scanf("%ld",&n);
a=n/4;
b=n/100;
c=n/400;
printf("%ld\n",a-b+c);
return 0;
}