题目描述
小蓝出生在一个艺术与运动并重的家庭中。
妈妈是位书法家,她希望小蓝能通过练习书法,继承她的艺术天赋,并练就一手好字。爸爸是一名篮球教练,他希望小蓝能通过篮球锻炼身体,培养运动的激情和团队合作的精神。
为了既满足妈妈的期望,又不辜负爸爸的心意,小蓝决定根据日期的笔画数来安排自己的练习。首先,他会将当天的日期按照 “YYYYMMDD” 的格式转换成一个 8 位数,然后将这 8 位数对应到汉字上,计算这些汉字的总笔画数。如果总笔画数超过 50,他就去练习篮球;如果总笔画数不超过 50,他就去练习书法。
例如,在 2024 年 1 月 1日这天,日期可表示为一个 8 位数字 20240101,其转换为汉字是 “二零二四零一零一” 。日期的总笔画数为 2 + 13 + 2 + 5 + 13 + 1 + 13 + 1 = 50,因此在这天,小蓝会去练习书法。
以下是汉字的笔画数对照表:
|汉字|笔画数|汉字|笔画数|
| 零 | 13 | 五 | 4 |
| 一 | 1 | 六 | 4 |
| 二 | 2 | 七 | 2 |
| 三 | 3 | 八 | 2 |
| 四 | 5 | 九 | 2 |
现在,请你帮助小蓝统计一下,在 2000 年 1 月 1 日到 2024 年 4 月 13 日这段时间内,小蓝有多少天是在练习篮球?
count = 0
for year in range(2000, 2025):
for month in range(1, 13):
if month in [1, 3, 5, 7, 8, 10, 12]:
days = 31
elif month == 2:
if (year % 4 == 0 and year % 100!= 0) or (year % 400 == 0):
days = 29
else:
days = 28
else:
days = 30
for day in range(1, days + 1):
date_str = f"{year:04d}{month:02d}{day:02d}"
stroke_count = 0
for char in date_str:
if char == '0':
stroke_count += 13
elif char == '1':
stroke_count += 1
elif char == '2':
stroke_count += 2
elif char == '3':
stroke_count += 3
elif char == '4':
stroke_count += 5
elif char == '5':
stroke_count += 4
elif char == '6':
stroke_count += 4
elif char == '7':
stroke_count += 2
elif char == '8':
stroke_count += 2
elif char == '9':
stroke_count += 2
if stroke_count > 50:
count += 1
print(count)
代码说明:
- 外层循环遍历年份
2000
到2024
。 - 中层循环遍历月份
1
到12
。 - 内层循环遍历每个月对应的天数,根据月份和是否为闰年计算天数。
- 将日期格式化为
YYYYMMDD
的字符串,然后遍历字符串中的每个字符,根据字符对应的笔画数累加总笔画数。 - 如果总笔画数超过
50
,则增加计数器count
。 - 最后输出计数器
count
,即小蓝练习篮球的天数。