• 1384 黑色星期五


    1384 黑色星期五

     

    USACO

     时间限制: 1 s
     空间限制: 256000 KB
     题目等级 : 青铜 Bronze
     
     
    题目描述 Description

    13号又是星期五是一个不寻常的日子吗?
    13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13
    日落在星期一,星期二......星期日的次数.这个测试从1900年1月1日到
    1900+n-1年12月31日.n是一个非负数且不大于400.
    这里有一些你要知道的:

    1900年1月1日是星期一.
    4,6,11和9月有30天.其他月份除了2月有31天.闰年2月有29天,平年2月有28天.
    年份可以被4整除的为闰年(1992=4*498 所以 1992年是闰年,但是1990年不是闰年)
    以上规则不适合于世纪年.可以被400整除的世纪年为闰年,否则为平年.所以,1700,1800,1900和2100年是平年,而2000年是闰年.

    请不要预先算好数据!

    输入描述 Input Description

    一个整数n.

    输出描述 Output Description

    七个在一行且相分开的整数,它们代表13日是星期六,星期日,星期一.....星期五的次数.

    样例输入 Sample Input

    20

    样例输出 Sample Output

    36 33 34 33 35 35 34

    数据范围及提示 Data Size & Hint

    n是一个非负数且不大于400.

    分类标签 Tags 

     虽然是青铜的难度,我觉得还是做做好

    代码:

    #include<cstdio>
    #include<iostream>
    using namespace std;
    int ans[8],n,w;
    int md[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int main(){
        scanf("%d",&n);
        for(int y=1900;y<=1900+n-1;y++){//枚举年 
            for(int m=1;m<=12;m++){//枚举月 
                if((y%4==0&&y%100!=0)||y%400==0)//判断是否是闰年 
                    md[2]=29;
                else
                    md[2]=28;
                for(int d=1;d<=md[m];d++){
                    w++;//记录是星期几 
                    if(w>7) w=1;
                    if(d==13) ans[w]++;//记下每个月的13号是星期几 
                }
            }
        }
        printf("%d %d %d %d %d %d %d
    ",ans[6],ans[7],ans[1],ans[2],ans[3],ans[4],ans[5]);
        return 0;
    }
  • 相关阅读:
    Python 最强 IDE 详细使用指南!-PyCharm
    Python中最常用的字符串方法!
    转:用 Python 一键分析你的上网行为, 看是在认真工作还是摸鱼
    python中hasattr()、getattr()、setattr()函数的使用
    下载图片到本地,保存字符串内容到本地
    根据经纬度算出两个位置之间的距离
    根据日期获取星座和生肖
    java去除字符串的html标签
    java环信服务端注册IM代码
    linux命令
  • 原文地址:https://www.cnblogs.com/shenben/p/5539474.html
Copyright © 2020-2023  润新知