您的位置:澳门402永利com > 计算机 网络 > 43:相关月

43:相关月

发布时间:2019-09-23 20:45编辑:计算机 网络浏览(124)

    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 }
    

     

    本文由澳门402永利com发布于计算机 网络,转载请注明出处:43:相关月

    关键词: