zoukankan      html  css  js  c++  java
  • 43:相关月

    43:相关月

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

    “相关月”是指那些在一年中月份的第一天星期数相同的月份。例如,九月和十二月是相关的,因为九月一日和十二月一日的星期数总是相同的。两个月份相关,当且仅当两个月份第一天相差的天数能被7整除,也就是说,这两天相差为几个整星期。又如,二月和三月一般都是相关月,因为二月有28天,能被7整除,也恰好为4个星期。而在闰年,一月和二月的相关月与它们在平年的相关月是不同的,因为二月有29天,其后每个月份的第一天星期数都推后了一天。

    输入
    输入的第一行为整数n(n ≤ 200), 
    其后n行,每行三个整数,依次为一个年份和两个月份,整数之间用一个空格分隔。
    输出
    输出有n行,对应于每个输入的年份和相应两个月份, 
    如果这两个月份是相关的,则输出YES; 
    否则,输出NO。
    样例输入
    5
    1994 10 9
    1935 12 1
    1957 1 9
    1917 9 12
    1948 1 4
    样例输出
    NO
    NO
    NO
    YES
    YES
    来源
    北京大学医学部计算概论08期末考试题
     1 #include<iostream>
     2 using namespace std;
     3 int month[21]={0,31,28,31,30,31,30,31,31,30,31,30,31};//非闰年
     4 int rmonth[21]={0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年 
     5 int flag=1;
     6 int main()
     7 {
     8     int n;
     9     int year;
    10     int month1;
    11     int month2;
    12     cin>>n;
    13     for(int i=1;i<=n;i++)
    14     {
    15         cin>>year>>month1>>month2;
    16         if(month1>month2)
    17         {
    18             int d=month1;month1=month2;month2=d;
    19         }
    20         if((year%4==0&&year%100!=0)||year%400==0)
    21         {
    22             int begin=1;//默认第一天是星期一
    23             for(int j=month1;j<=month2-1;j++)
    24             {
    25                 for(int k=1;k<=rmonth[j];k++)
    26                 {
    27                     if(begin==7)
    28                     begin=1;
    29                     else 
    30                     begin++;
    31                     
    32                 }
    33                 
    34              } 
    35              if(begin==1)
    36              cout<<"YES"<<endl;
    37              else
    38              cout<<"NO"<<endl;
    39         }//闰年
    40         else
    41         {
    42             int begin=1;//默认第一天是星期一
    43             for(int j=month1;j<=month2-1;j++)
    44             {
    45                 for(int k=1;k<=month[j];k++)
    46                 {
    47                     if(begin==7)
    48                     begin=1;
    49                     else begin++;
    50                 }
    51             } 
    52              if(begin==1)
    53              cout<<"YES"<<endl;
    54              else
    55              cout<<"NO"<<endl;
    56          }//非闰年 
    57     }
    58     return 0;
    59 }
  • 相关阅读:
    C++疑难杂症
    程序中的错误、异常处理框架设计
    客户端ARPG角色行为模型
    http协议
    MySQL数据库开发(2)
    MySQL数据库开发(1)
    网络编程进阶及并发编程
    网络编程-SOCKET开发
    面向对象编程
    常用模块
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6542858.html
Copyright © 2011-2022 走看看