刷题(1)

此题为填空题可以直接手算也可以写程序:

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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值