#include<stdio.h>
int runnian(int n);
int main()
{
int n,count,nian,num;
scanf("%d",&n);
for(count=1;count<=n;count++)
{
scanf("%d",&nian);
for(num=0;nian!=-1;)
{
if(runnian(nian)) num++;
scanf("%d",&nian);
}
printf("%d\n",num);
}
}
int runnian(int n)
{
if(n%4==0&&n%100!=0||n%400==0)
return 1;
else return 0;
}
地球绕太阳运行周期为365天5小时48分46秒(合365.24219天),即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,每四年累积约一天,把这一天加于2月末(即2月29日),使当年时间长度变为366日(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天),这一年就为闰年。需要注意的是,公历是根据罗马人的"儒略历"改编而得。由于当时没有了解到每年要多算出0.0078天的问题,从公元前46年,到16世纪,一共累计多出了10天。为此,当时的教皇格列高利十三世,将1582年10月5日人为规定为10月15日。并开始了新闰年规定。即规定公历年份是整百数的,必须是400的倍数才是闰年,不是400的倍数的就是平年。比如,1700年、1800年和1900年为平年,2000年为闰年。此后,平均每年长度为365.2425天,约4年出现1天的偏差。按照每四年一个闰年计算,平均每年就要多算出0.0078天,经过四百年就会多出大约3天来,因此,每四百年中要减少三个闰年。闰年的计算,归结起来就是通常说的:四年一闰;百年不闰,四百年再闰。
现有若干行年份,请你写一段程序分别统计每一行中有多少个闰年。
输入格式:
第一行为一个整数n(0<n<=10),代表测试用例行数。后边是n行,每行为若干个用空格分隔的正整数(代表需要统计的年份,这些年份值在1到3000之间)。这些正整数的最后是-1,表示此行结束。
输出格式:
为n行,每行一个整数,对应于输入的每一行中闰年的个数。
输入样例:
3
1900 1968 1991 2009 1938 1982 1972 1939 1989 -1
1979 1933 1976 1922 1950 2014 1958 -1
2016 1921 1904 1982 1968 1995 1956 1907 1978 2001 1965 1990 2014 1947 -1
输出样例:
2
1
4