/*问题描述
有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,
用 古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,
出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。
说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;
(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
输入格式:输入只有一行,即某个特定的年份(大于或等于1998年)。
输出格式:输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
输入输出样例
样例输入
1998
样例输出
3*/
#include<stdio.h>
int cs( int year );
int main( void )
{
int year;
scanf("%d",&year);
printf("%d\n",cs( year ));
return 0 ;
}
int cs( int year )
{
int i , day = 0 , xq ;
for( i = 1998 ; i < year ; i ++ )
{
if( (i % 4 == 0 && i %100 != 0)||( i%100 ==0 && i%400 == 0 ) )
{
day++;
}
day += 365 ;
}
xq = (day + 3 )%7 ;
int yfts[12] = {31 ,28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 };
int sum = 0 , ts = 0 ;
for( i = 0 ; i < 12 ; i ++ )
{
if( (year % 4 == 0 && year %100 != 0)||( year%100 ==0 && year%400 == 0 ) )
{
if( i == 2 )
{
ts ++ ;
}
}
if( (xq + ts + 13 ) % 7 == 5 )
{
sum ++ ;
}
ts += yfts[i] ;
}
return sum ;
}