1. 程式人生 > >1949年的國慶節(10月1日)是星期六.......

1949年的國慶節(10月1日)是星期六.......

問題:

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;
}
執行結果:

小結:分清時間順序。