试题 C:跑步锻炼
【问题描述】
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
结果为 8879 公里
a = [31,28,31,30,31,30,31,31,30,31,30,31]#普通年份
b = [31,29,31,30,31,30,31,31,30,31,30,31]#闰年
c = [1,2,3,4,5,6,7,8,9,10,11,12]
d = [6,7,1,2,3,4,5]
e = 5
g = 0
h = 0
for years in range(2000,2021):
if years%4 == 0:#因为2000年为闰年,就不再判考虑百年份能否被400整除
for mos in c:#循环月份
for day in range(1,b[mos-1]+1):#范围为对应年份列表中对应的月份天数
f = e%7+1
e += 1
if day == 1 and f == 1:
h += 2
elif day == 1 and f != 1:
h += 2
elif day != 1 and f == 1:
h += 2
elif day !=1 and f != 1:
h += 1
print("现在是",years,"年",mos,"月",day,"日","星期",f,"已经跑了",h,"公里")
elif years%4 != 0:
for mos2 in c:
for day in range(1,a[mos2-1]+1):
f = e%7+1
e += 1
if day == 1 and f == 1:
h += 2
elif day == 1 and f != 1:
h += 2
elif day != 1 and f == 1:
h += 2
elif day !=1 and f != 1:
h += 1
print("现在是",years,"年",mos2,"月",day,"日","星期",f,"已经跑了",h,"公里")
#找到对应的2020年10月1日即可
这个循环会从2000年1月1日一直到2020年12月31日,找到对应的日期即可得到答案。