分享

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

 算法与编程之美 2021-03-21

问题描述

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

解决方案

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

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

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

接下来展示完整的代码。

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

主编:欧洋

作者:宁衍、岳进、赵小小

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多