问题:
1949年的国庆节(10月1日)是星期六。
今年(2012)的国庆节是星期一。
那么,从建国到现在,有几次国庆节正好是星期日呢?
只要答案,不限手段!
可以用windows日历,windows计算器,Excel公式,。。。。。
当然,也可以编程!
不要求写出具体是哪些年,只要一个数目!思路:
先求出是第几天然后根据1950年1月1日是星期天,通过取余得到第i年10月一日是星期几。
代码:
#include <stdio.h>
int day(int y,int m,int d)
{
int days; //计算得到的天数
int i;
int a[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
days=d;
//下面要加上前m-1月的天数
for(i=1; i<m; i++)
{
days+=a[i];
}
if(m>2&&((y%4==0&&y%100!=0)||y%400==0)) //若闰年,且晚于2月,加一天
days++;
return days;
}
int main()
{
int sum=0,judge=0;
int year;
int k;
for(year=1950; year<=2011; year++)
{
sum+=day(year,10,1);
k=(sum-1)%7;//1950年一月一日为星期天,所以得到的天数总和许减去1或加6,再取余,才能判断当天是否为星期天
if(k==0)
{
judge++;
printf("%d\n",year);
}
}
printf("%d",judge);
return 0;
}
运行结果:
小结:分清时间顺序。