-->
当前位置:首页 > 题库

编程题:求闰年数

Luz4年前 (2022-10-11)题库439
按照现行历法(格里高利历):每四年一闰,逢百年不闰,逢四百年再闰。

即: 年数是 4 的倍数且不是 100 的倍数,或者年数是 400 的倍数,才是闰年,其余均为平年。

请编写程序,输入年份 $$y$$,计算公元 $$1$$ 年到 $$y$$ 年间的闰年总数 $$n$$。

#### 输入格式
> $$y$$

#### 输出格式
> $$n$$

#### 输入样例
in
1995


#### 输出样例
out
483








答案:若无答案欢迎评论

按每四年一闰,则 1 ~ y 年间闰年数为

$$ \lfloor y / 4 \rfloor $$

按逢百年不闰,则 1 ~ y 年间闰年数修正为

$$ \lfloor y / 4 \rfloor - \lfloor y / 100 \rfloor $$

按逢四百年再闰,则 1 ~ y 年间闰年数再修正为

$$ \lfloor y / 4 \rfloor - \lfloor y / 100 \rfloor + \lfloor y / 400 \rfloor $$

参考代码

c
#include <stdio.h>

int main()
{
int y, n;
scanf("%d", &y);
n = y / 4 - y / 100 + y / 400;
printf("%d\n", n);
return 0;
}