• 洛谷 P1202 [USACO1.1]黑色星期五Friday the Thirteenth


    题目描述

    13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400.

    这里有一些你要知道的:

    1、1900年1月1日是星期一.

    2、4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.

    3、年份可以被4整除的为闰年(1992=4*498 所以 1992年是闰年,但是1990年不是闰年).

    4、以上规则不适合于世纪年。可以被400整除的世纪年为闰年,否则为平年。所以,1700,1800,1900和2100年是平年,而2000年是闰年.

    请不要调用现成的函数

    请不要预先算好数据(就是叫不准打表)!

    输入输出格式

    输入格式:

     

    一个正整数n.

     

    输出格式:

     

    **输出请从周六开始

     

    输入输出样例

    输入样例#1: 复制
    20
    
    输出样例#1: 复制
    36 33 34 33 35 35 34
    

    说明

    题目翻译来自NOCOW。

    USACO Training Section 1.1

    /*
    简单的模拟就好了。
    */
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,now;
    int ans[7];
    int num[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    bool judge(int now){
        if(now%100==0){
            if(now%400==0)    return true;
            else return false;
        }
        else{
            if(now%4==0)    return true;
            else return false;
        }
    }
    int main(){
        scanf("%d",&n);
        now=1;
        for(int i=1900;i<1900+n;i++){
            for(int j=1;j<=12;j++){
                int x=now;x+=12;x%=7;
                if(x==0)    x=7;
                ans[x]++;
                if(j==2){
                    if(judge(i)){
                        now+=29;now%=7;
                        if(now==0)    now=7;
                    }
                    else{
                        now+=28;now%=7;
                        if(now==0)    now=7;
                    }
                }
                else{
                    now+=num[j];now%=7;
                    if(now==0)    now=7;
                }
            }
        }
        cout<<ans[6]<<" "<<ans[7]<<" "; 
        for(int i=1;i<=5;i++)
            cout<<ans[i]<<" ";
    }
    100
  • 相关阅读:
    OCP-1Z0-052-V9.02-177题
    游戏服务端IOCP模型,自己封装的一个类,3行代码搞定服务端。
    OCP-1Z0-052-V9.02-116题
    OCP-1Z0-052-V9.02-72题
    map按value值查找——find_if的使用
    Oracle OCP 11G 052答案解析目录
    Oracle OCP 11G 052 V8.02与V9.02版本对比
    OCP-1Z0-052-V8.02-102题
    OCP-1Z0-052-V8.02-117题
    在完成端口IOCP模型判断客户端是否已关闭连接(掉线)
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/9925248.html
Copyright © 2020-2023  润新知