此题为填空题可以直接手算也可以写程序:
1.先把2022换算成六进制 l=hex(2022) =7e6
那么比他大的又符合要求的是 AAA
最后将AAA换算成十进制:print(16*16*10+16*10+10)=2730
或print(int('AAA',16))=2730
2.用程序算
i=2022
m=0
while True:#代表一直执行下去除非遇到break
i=i+1
for k in hex(i)[2:].upper():#十六进制数在Python中都是以五位出现加一个[2:]是为了只取后三位
if k in ["A","B","C","D","E","F"]:
m=1
else:
m=0
break
if m==1:
print(i)
break
26*26
676 两个字母共组成的个数
26*26*26
17576
2022-676-26
1320 可知2022行有三个数组成
1320-676开头为B
644
import os
import sys
# 请在此输入您的代码
import datetime
a = datetime.date(1900, 1, 1)
b = datetime.date(9999, 12, 31)
c = datetime.timedelta(days=1)
q = 0
w = 0
count = 0
while a != b:
y = str(a.year)
md = str(a.month) + str(a.day)
for i in range(len(y)):
q += int(y[i])
for j in range(len(md)):
w += int(md[j])
if w == q:
count += 1
q = 0
w = 0
a += c
print(count)
import os
import sys
'''
# 请在此输入您的代码
def run(year):
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
return 1 #是闰年
else:
return 0 #不是闰年
def add(n):
sum = 0
while(n>0):
temp = n%10
n = int(n/10)
sum = sum + temp
return sum
month = [0,1,2,3,4,5,6,7,8,9,10,11]
date1 = [31,28,31,30,31,30,31,31,30,31,30,31]
date2 = [31,29,31,30,31,30,31,31,30,31,30,31]
year = 1900
sumres = 0
while(year<=9999):
temp1 = add(year)
res= run(year)
if res == 1:
date = date2
else:
date = date1
for i in month:
for j in range(1,date[i]+1):
temp2 = 0
temp2 = temp2 + add(i+1)
temp2 = temp2 +add(j)
# print(temp1)
# print(temp2)
# print("====")
if temp1 == temp2:
# print(i+1,j)
# # print(j)
# print("====")
sumres += 1
year+=1
print(sumres)
'''
print(70910)