日期
日期
这道题比较水,但还是十分值得深思的,有点像数学里的分类讨论问题。
-
日期为
-
月份为
无需修改。 -
月份为
改 次(都改成 月)。 -
除掉以上合法的月份,当个位为
时,修改十位不能达到目的。 -
其他情况均可以
次成功,如果各位为 ,改成 月;否则将其十位改成 。
-
-
日期为
- 如果是
月或者是其他不合法的月份,修改一次; 月改 月;个位为 改十位为 。其他情况直接改十位为 。 - 否则,无需修改。
- 如果是
-
日期为
- 月份合法无需修改
- 月份不合法修改,同
第一点的改法。
-
日期不合法
- 个位为
改为 ,否则改成个位的数。 - 如果月份不合法,修改一次,同
第一点的改法。
- 个位为
综上,所有情况都已分析完,时间复杂度
#include<bits/stdc++.h>
using namespace std;
int m,d;
int main(){
scanf("%d-%d",&m,&d);
if(d==31){
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)puts("0");
else if(m==2||m==4||m==6||m==9||m==11)puts("1");
else if(m%10==4||m%10==6||m%10==9)puts("2");
else puts("1");
}
else if(d==29||d==30){
if(m==2||m==0||m>12)puts("1");
else puts("0");
}
else if(d>0&&d<=28){
if(m>0&&m<=12)puts("0");
else puts("1");
}
else if(m==0||m>12)puts("2");
else puts("1");
return 0;
}
本文作者:wscqwq
本文链接:https://www.cnblogs.com/wscqwq/p/17420340.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步