前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法创作|2020蓝桥杯真题-跑步锻炼

算法创作|2020蓝桥杯真题-跑步锻炼

作者头像
算法与编程之美
发布2021-03-30 14:45:37
9070
发布2021-03-30 14:45:37
举报

问题描述

小蓝每天都锻炼身体。正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

解决方案

了解题意,对问题进行划分,特殊条件(周一和月初跑2千米),其他日子均跑1千米;日期范围是2000年1月1日到2020年10月1日。

细化条件,条件中带有周一和月初,那我们就要引用datetime。from datetime import这句代码是,添加引用datetime模块的意思 引用了模块就可以使用这个模块中的函数、数据类型、类等。

然后就是循环程序,通过日期,可以筛选出跑1千米和2千米的日子,然后将全部值进行求和。

接下来展示完整的代码。

代码语言:javascript
复制

from datetime import *

length = 0

day = timedelta(days = 1)

x1 = date(2000,1,1)

x2 = date(2020,10,1)

while x1 <= x2:

     if x1.day==1 or x1.weekday()==0:

         length += 2

     else:

         length += 1

     x1 += day

print(length)

我们在程序中运行一下此代码。

图2.1

结语

本题目主要是通过日期来确定每天跑的路程求和运算,问题最容易出错的就是条件循环和引用datetime。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档