1949年的国庆节(10月1日)是星期六。
今年(2012)的国庆节是星期一。
那么,从建国到现在,有几次国庆节正好是星期日呢?
只要答案,不限手段!
可以用windows日历,windows计算器,Excel公式,。。。。。
当然,也可以编程!
不要求写出具体是哪些年,只要一个数目!
千万不要提交源代码!
答案不要写在这里,写在“解答.txt”中
思路:一般的日期计算,吧星期日当做星期7算就可以了,对所在天数取余,9月算完在加一天对七取余看看是不是7,如果是那么成立并输出答案,不是不成立。
注意:闰年的判断,月份天数的判断(二月十分重要),边界问题。
参考代码如下:
#include<stdio.h> int Run(int year) { if(year%400==0||(year%4==0&&year%100!=0)) return 1; else return 0; } int month(int year,int n)//列出具体的哪一个月的 具体天数 { int aws; switch(n) { case 1:aws=31;break; case 2:{ if(Run(year)) aws=29; else aws=28; }break; case 3:aws=31;break; case 4:aws=30;break; case 5:aws=31;break; case 6:aws=30;break; case 7:aws=31;break; case 8:aws=31;break; case 9:aws=30;break; case 10:aws=31;break; case 11:aws=30;break; case 12:aws=31;break; } return aws; } int main() { int i,j,x,sum; sum=5; for(i=10;i<=12;i++) { sum+=month(1949,i); } for(i=1950;i<=2013;i++)//今天是2014年3月14日,所以算到2013年即可 { for(j=1;j<=12;j++) { sum+=month(i,j); if(j==9) { x=sum%7; if(x+1==7) printf("%d年的国庆节是星期日。\n",i); } } } return 0; }
运行结果如下:
但对于蓝桥杯考试来说,直接用window自带的日历直接 数就好了,不过要仔细地来说,容易出错的,如果数对的话 节约了时间!