求解思路:
1、计算2000年到2020年的总天数
(这里要先判断出2000年到2020年之间的平年和闰年,然后分别用列表存储。后调用len()函数得出平年和闰年的天数,再按照平年365,闰年366的规律计算出总天数。)
2、计算2000年1月1日(含)到2020年10月1日(含)的总天数
(用上步得出的总天数减去2020年10月1 日到2020年12月31日的天数即为2000年1月1日(含)到2020年10月1日(含)的总天数。)
2、计算月初天数
3、计算周一天数
4、计算即是周一又是月初的天数
(这个本人没想到更好的办法,我是通过数日历得出的,一共34天)
5、用(月初总天数+周一总天数)— 即是周一又是月初的天数(即需要跑2公里的天数)
6、用第2 步得到的总天数—需要跑两公里的天数得到跑一公里的天数
7、1公里天数 × 1 + 2公里天数 × 2 得到结果
import os
import sys
# 请在此输入您的代码
day1 = [] #记录闰年
day2 = [] #记录平年
#判断2000年到2020年的闰年和平年
for year in range(2000,2021):
if year%4 == 0 and year%100 != 0 or year%400 == 0:
day1.append(year)
else:
day2.append(year)
sumday1 = 0
sumday2 = 0
sumday1 = sumday1 + len(day1)*366 #闰年总天数
sumday2 = sumday2 + len(day2)*365 #平年总天数
sumday = sumday1 + sumday2 #从2000年到2020年的全部天数
SUMday = sumday - (30+30+31) #从2000年1月1日(含)到2020年10月1日(含)的天数
Fmonth = 20*12 + 1*10 #21年来的月初天数
Monday = (SUMday // 7)+1 #21年来的周一天数
specialDay = Fmonth + Monday - 34
SUM = (SUMday - specialDay)*1 + specialDay*2 #总里程
print(SUM)