如何在网上注册公司网站,wordpress go.php,企业手机网站建设资讯,游戏行业为啥30岁就要转行真题链接#xff1a;https://www.lanqiao.cn/problems/597/learning/ 题目描述#xff1a; 小蓝每天都锻炼身体。 正常情况下#xff0c;小蓝每天跑1干米。如果某天是周一或者月初(1 日)#xff0c;为了激励自己#xff0c;小蓝要跑2干米。如果同时是周一或月 初#xff…真题链接https://www.lanqiao.cn/problems/597/learning/ 题目描述 小蓝每天都锻炼身体。 正常情况下小蓝每天跑1干米。如果某天是周一或者月初(1 日)为了激励自己小蓝要跑2干米。如果同时是周一或月 初小蓝也是跑2干米。 小蓝跑步已经坚持了很长时间从2000年1月1日周六含 到2020年10月1日周四含。请问这段时间小蓝总共跑步多 少干米 前置讲解
一般解题思路一般解题思路是去算2000-2020里哪些是平年、闰年它们二月对应的天数是不同的导致一年中具体的哪一天的星期是会变化的。运用特殊数据结构解题 更优一般解题思路下的代码逻辑非常繁琐很复杂搞不好就run不出来。我们使用的是python在python里其实是有方便处理日期的数据结构的是datatime类。我们直接从2000年1月1日-2020年10月1日遍历一般累加1km、特殊加2km就好了。至于当前是星期几、是平年闰年都不归我们考虑。
算法逻辑
# 大体思路从2000-2020年遍历维护累计路程变量。按照如果当天周一、月初就累2km其他累加1km的方式
# 去更新路程变量创建锻炼start日期
创建锻炼end日期
创建ans存储答案# 循环效果从start到end遍历日子根据规则统计期间所累计的路程总数到ans
for 还有日子没统计就做if 如果是星期一或者月初start更接近end一天ans累加当天的2kmelsestart更接近end一天ans累加当天的1km打印答案ans
语言代码
import datetime
# 大体思路从2000-2020年遍历维护累计路程变量。按照如果当天周一、月初就累2km其他累加1km的方式
# 去更新路程变量# 创建锻炼start日期
start datetime.date(2000, 1, 1)
# 创建锻炼end日期
end datetime.date(2020, 10, 1)days datetime.timedelta(days1) # 发现要创建一个表示1天的常量用来辅助更新# 创建ans存储答案
ans 0# 循环效果从start到end遍历日子根据规则统计期间所累计的路程总数到ans
while(start end): # 还有日子没统计就做# 如果是星期一或者月初if start.day 1 or start.isoweekday() 1:# start更接近end一天start days# ans累加当天的2kmans 2else:# start更接近end一天start days# ans累加当天的1kmans 1
# 打印答案ans
print(ans)
补充大家也许不了解datatime模块和里面的方法这里附上官方文档介绍https://docs.python.org/zh-cn/3/library/datetime.html#module-datetime。看看、理解理解自己也能写出来