题解 P5690

· · 题解

好耶,水题题解又可以提交了!

这题是分成月和日,分别判断。

通过读题,我们不难看出,月份不用改的话,日期如果要改只要把十位数改成 1 就可以了,因为天数最少的也可以过,月份要改的话需要越大越好。

具体思路在代码注释里了,因为我不知道具体怎么说

#include <bits/stdc++.h>
using namespace std;
#define qwq return 0;
#define QAQ  int main()
int ts[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//每月的天数
int main()
{
    int m,r,s=0;
    char t;
    cin>>m>>t>>r;
    if(m>12)//月份需要改
    {
        if(m/10==1)//十位数是1
        {
            m=12;
        }else
        {
            if(m%10==2)//个位数是2
            {
                m=12;
            }else
            {
                m=(m-1)%10+1;//把十位数改成0,因为不是12的话个位为1或0,那就是11,10,10这里可以判断,11的话不如改成1
            }
        }
        s++;
    }
    if(ts[m]<r||r<=0)//天数要改
    {
        s++;
    }
    cout<<s;
    return 0;
}