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;
}
运行结果:

小结:分清时间顺序。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值