編程每日刷題系列八(跑步鍛煉)
2021-02-17 17:30 作者:Eric_Richard | 我要投稿
跑步鍛煉
小藍(lán)每天都鍛煉身體。
正常情況下,小藍(lán)每天跑 1 千米。如果某天是周一或者月初(1 日),為了
激勵自己,小藍(lán)要跑 2 千米。如果同時是周一或月初,小藍(lán)也是跑 2 千米。
小藍(lán)跑步已經(jīng)堅持了很長時間,從 2000 年 1 月 1 日周六(含)到 2020 年
10 月 1 日周四(含)。請問這段時間小藍(lán)總共跑步多少千米?
思路
首先設(shè)一個月份的數(shù)組,用來記錄每個月的天數(shù),然后考慮閏年平年對二月天數(shù)的影響。
因為題目問的是多少千米,那么普通天數(shù)1就相當(dāng)于1千米,總和公式為:
總天數(shù)很容易算,那么月初但不是周一的天數(shù)如何考慮呢?我們只要設(shè)一個判斷條件if((截至目前的總天數(shù) + 6) % 7 != 1)
有朋友就要問了,為什么是+6呢?
因為他說了2000.1.1是周六,就相當(dāng)于原數(shù)從Sun開始整體向右移了六個單位,這樣是不是更好理解了
接下來就是算周一的天數(shù),我們不妨畫個圖

以上橙線包裹的是2000.1,我們不妨就針對2000.1,如何將它補齊整除7?那當(dāng)然是減2加6,因此(sum - 2 + 6) / 7就是這么來的
C++代碼如下:
運行結(jié)果:

所以答案是8879
如果喜歡我的文章,請記得三連哦,點贊關(guān)注收藏,你的每一個贊每一份關(guān)注每一次收藏都將是我前進路上的無限動力 ?。。〃I(▔▽▔)↗感謝支持,下期更精彩?。?!?
標(biāo)簽: