
这篇代码并没有特殊的算法,只是利用日期的规则和思维逻辑,教程序进行判断。
有注释方便理解我的思维,测试时去掉注释
# 接收输入并进行处理为两个整数[日期,月份]
date = list(map(int,input().split("-")))
# 用来计数更改次数
c = 0
# 月份大于12 并且 日期大于31 2次更改
if date[0] > 12 and date[1] > 31:
c += 2
# 月份大于12 并且 日期不大于31分情况讨论
elif date[0] > 12 and date[1] <= 31:
d = date[0] % 10
# 看月份4,6,9,11月份 并且 日期为31 2次更改
if d in [4,6,9,11] and date[1] == 31:
c += 2
else:
# 其余情况 1次更改
c += 1
# 2月份 日期大于28 1次更改
elif date[0] == 2 and date[1] > 28:
c += 1
# 月份符合 日期大于31 1次更改
elif date[0] <= 12 and date[1] > 31:
c += 1
# 小月份情况下 日期大于30 1次更改
elif date[0] not in [1,3,5,7,8,10,12] and date[1] > 30:
c += 1
# 基本上考虑的所有情况 测试数据可以全部通过
print(c)
版权声明:本文为qq872890060原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。