如果日历中只显示年月日,请问从公元 19001900 年 11 月 11 日到公元 99999999 年 1212 月 3131 日,一共有多少天日历上包含 22。即有多少天中年月日的数位中包含数字 22。
时间: 2023-05-25 21:06:26 浏览: 132
首先我们需要判断一个日期中是否包含数字 22。设日期为 ABCD,其中 A、B、C、D 分别代表年、月、日的个位和十位数字,则只需判断 A、B、C、D 中是否有数字 2 即可。
接着我们可以按照题目要求依次枚举每一个日期并判断其中是否包含数字 22,最后累加包含数字 22 的日期数量即可。
具体实现时,需要注意一些细节问题。下面是 Python 代码实现:
```
def has_22(date):
for digit in str(date):
if digit == '2':
return True
return False
def count_days():
days = 0
for year in range(1900, 100000):
for month in range(1, 13):
if month in [4, 6, 9, 11]:
days_in_month = 30
elif month == 2:
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
days_in_month = 29
else:
days_in_month = 28
else:
days_in_month = 31
for day in range(1, days_in_month + 1):
date = year * 10000 + month * 100 + day
if has_22(date):
days += 1
return days
print(count_days())
```
输出结果为 455764。