2s
1024MB;
100分
在AtCoder王国的日历中,一年由第一个月到第M个月的M个月组成,每个月由第一天到第D天的D天组成。
在这个日历中,求明天是哪一年的几月几日。
1000≤y≤9000
1≤m≤M≤99
1≤d≤D≤99
所有输入值都是整数。
1、输入
2、运用if判断这个日期的下一天是否进入了下一个月(一定是d==D的时候下一天才是下一个月,而不是d+1==D)
3、我们非常容易发现,只有在下一天越界的时候,年份才可能增加,也就是下一月也越界了,所以直接在if里再写一个if,判断下一个月是否进入了下一年。
4、输出
注意如果这一天或者一个月“越界”了,在月数或年数加一要把天数或月数变成1。变成0就爆炸
#include<bits/stdc++.h>
using namespace std;
int M,D,y,m,d;
int main(){
cin>>M>>D;
cin>>y>>m>>d;
if(d==D){//判断这个日期的下一天是否进入了下一个月
d=1;//天数清1
m++;//月数加1,可能存在下一月越界的情况,所以用m-1
if(m-1==M){//判断下一个月是否进入了下一年
m=1;//月数清1
y++;//年数加1
}//没有else,月份已经加一
}else{//日期的下一天没有进入了下一个月
d++;//天数直接加一
}
cout<<y<<" "<<m<<" "<<d;
return 0;//帅气收场
}
为了您的身心健康,请不要复制任何题解刷AC率。
维护知识产权,拒绝复制粘贴。
不刷AC率,从你我他做起。(原声大碟)
最后,请分析注意事项的作用(4分)