zoukankan      html  css  js  c++  java
  • codeforces724-A. Checking the Calendar 日期题

    首先有这样一个显然的事实,那就是每个月的第一天可以是星期x,x可以取遍1~7

    因为日期一直在往后退,总有一年能轮到分割线那天,因为本来其实压根就没有月份的划分,月份划分是人为的

    而且我们也不知道开始的时候是从啥时候开始,开始时是星期几,所以也可以大胆假设,

    并且要注意题目中没有闰年的这个条件,很重要。。

    打代码还遇到一些坑,写到注释里了

    string的读入与printf调试的矛盾一直没解决

    #include <cstring>
    #include <cstdio>
    #include <iostream>
    //要想使用string 必须包含iostream文件
    //否则就会报错
    using namespace std;
    int monthday[]={0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};    
    string name[]={"1","monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"};
    //少加了分号,很伤
    int get_Index(string p){
        register int i;
        for(i=1;i<=7;++i){
            if(p==name[i]){
                return i;
            }
        }
    }
    char a[20],b[20];
    //读取string 是一个问题
    int main(){
        scanf("%s%s",a,b);
        string p[2];
        int index[2];
        p[0]=string(a);//本构造函数长期有效
        p[1]=string(b);//变量赋值前面不加类型,很伤
        index[0]=get_Index(p[0]);
        index[1]=get_Index(p[1]);
        //printf("index %d %d
    ",index[0],index[1]);
        register int i,j;
        for(j=2;j<=4;++j){
            int temp=index[0];
            for(i=1;i<=monthday[j];++i){//++i 写成 ++j
                temp++;
                if(temp>7) temp-=7;
            }
            if(temp==index[1]){
                printf("YES
    ");
                return 0;
            }
        }
        printf("NO
    ");
        return 0;
    }
  • 相关阅读:
    PAT甲级——A1059 Prime Factors
    PAT甲级——A1058 A+B in Hogwarts
    PAT甲级——A1057 Stack
    hdu2665 主席树模板题
    存两个图论模板
    存两个图论模板
    存两个图论模板
    codevs1080 第一次用ZKW线段树
    codevs1080 第一次用ZKW线段树
    codevs1080 第一次用ZKW线段树
  • 原文地址:https://www.cnblogs.com/linkzijun/p/6066840.html
Copyright © 2011-2022 走看看