欢迎光临散文网 会员登陆 & 注册

编程每日刷题系列八(跑步锻炼)

2021-02-17 17:30 作者:Eric_Richard  | 我要投稿

跑步锻炼

小蓝每天都锻炼身体。

正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了
激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。

小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年
10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

思路

首先设一个月份的数组,用来记录每个月的天数,然后考虑闰年平年对二月天数的影响。

因为题目问的是多少千米,那么普通天数1就相当于1千米,总和公式为:

总天数很容易算,那么月初但不是周一的天数如何考虑呢?我们只要设一个判断条件if((截至目前的总天数 + 6) % 7 != 1)

有朋友就要问了,为什么是+6呢?

因为他说了2000.1.1是周六,就相当于原数从Sun开始整体向右移了六个单位,这样是不是更好理解了

接下来就是算周一的天数,我们不妨画个图

以上橙线包裹的是2000.1,我们不妨就针对2000.1,如何将它补齐整除7?那当然是减2加6,因此(sum - 2 + 6) / 7就是这么来的

C++代码如下:

运行结果:

所以答案是8879

如果喜欢我的文章,请记得三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持,下期更精彩!!! 

编程每日刷题系列八(跑步锻炼)的评论 (共 条)

分享到微博请遵守国家法律