星期几--蓝桥杯

欢迎访问我的新博客:http://www.milkcu.com/blog/

原文地址:http://www.milkcu.com/blog/archives/1367191680.html

前言

本题摘自“2012年第三届蓝桥杯全国软件大赛决赛(C本科)”第1题,由MilkCu整理。

题目描述

    1949年的国庆节(10月1日)是星期六。
    今年(2012)的国庆节是星期一。
    那么,从建国到现在,有几次国庆节正好是星期日呢?

    只要答案,不限手段!
    可以用windows日历,windows计算器,Excel公式,。。。。。
    当然,也可以编程!
    不要求写出具体是哪些年,只要一个数目!
    千万不要提交源代码!
    答案不要写在这里,写在“解答.txt”中

分析

本题用到的较多的是取余的使用。

源代码

# include <stdio.h>
int yday(int year);
int main(void)
{
	int year;
	int n;    //是星期日的天数
	int w;    //星期几
	
	n = 0;
	w = 6;
	for(year = 1950; year < 2013; year++) {
		w = (yday(year) % 7 + w) % 7;
		if(w == 0) {
			n++;
		}
	}
	printf("%d", n);
}
int yday(int year)
{
	if((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
		return 366;
	} else {
		return 365;
	}
}

最后答案

63(感谢Dreamcaihaolorraine0416的质疑)

9

posted @ 2013-04-29 15:28  MilkCu  阅读(228)  评论(0编辑  收藏  举报