分享一下这几天准备蓝桥杯的笔记,因为是自己的思路过程所以有点乱
#2020门牌号从1——2020需要多少个2,可以用excel或word完成 # s = '' # for i in range(1,2021): # s += str(i) # print(s.count('2')) s = '' for i in range(1,2021): s += str(i) print(s.count('2')) print(sum([str(i).count('2') for i in range(1,2021)])) #2018的阶乘的末位有多少个0 答案502 import math ans = 0 for i in range(1,2019): if i % 5 == 0:#有5存在,后续要知道有多少个5 # if i / 5 != 1:#5还没有除尽,但是漏掉了??//结果得出402 # i /= 5 # ans += 1 while i % 5 % 5 == 0: i /= 5 ans += 1#正确答案 # ans += math.log(5,i) 5*5*2类似这样的就算不出来了//答案有小数 print(ans) #2020蛇形填数,手工求解、找规律(模拟法、公式法aij——>k)第20行20列是数字几 #自己找规律用数学思维做出来了答案是761 # for i in range(1,11): # print(i,end = '') # for j in range(i+1): # print(j) # for i in range(1,10):#行 # for j in range(1,10-i+1):#列 # print(f'{j} * {i} = {i*j}',end="\t") # print()#一行结束后换行 # ans = 1 # d = 1 # for i in range(1,23): # if i % 2 != 0: # ans += 1 # else: # ans = i ** 2 - d * i # d += 1 # # for j in range(1,i+1): # # if i % 2 != 0: # # ans = i ** 2 - d * i # # d += 1 # # else: # # ans += 1 # print(i) # if ans % 2 == 0: # ans += 1 # else: # # for i in range(1,23): mp = [[0 for i in range(50)]for j in range(50)]#创建一个二维列表,列表对应第几个可以查键,并且暂时用0来填充使得列表鼓起来 x = 1;y = 1#行列从1开始 tot = 0#键值从0开始加 while x + y <= 40:#限定能求出范围题目要求求的(20,20) 也可以是 x <= 20 or y <= 20 tot += 1#逐渐加1 mp[x][y] = tot#匹配键值对 if x == 1: y += 1 tot += 1 mp[x][y] = tot dx = 1 dy = -1 if y == 1: x += 1 tot += 1 mp[x][y]= tot dx = -1 dy = 1 x += dx y += dy print(mp[20][20]) # d = 1 # for i in range(1,22): # if i % 2 != 0: # d += 1 # ans = i ** 2 - d * i # else: # ans += 1 # for j in range(i+1,22-i+1): # pass #2021卡片0——9各2021张,共20210张,问小兰可以从1拼到多少 拆分够拼 total = 2021#卡牌数量 ans = 0#从1到未知数的遍历 while total >= 0: ans += 1 if len(str(ans).split("1")) >= 2: total -= len(str(ans).split("1")) - 1 print(ans-1) #我!任牛逼!做到了! #2022年顺子日期:直接凑2022----(三个一样的不是顺子、012也算顺子)共十四种(填空题,不编码)以上都是填空 ri = [0,31,28,31,30,31,30,31,31,30,31,30,31] shunzi = ['012','123','234','345','456','567','678','789'] res = 0 for i in range(1,13): if i< 10: month = '0' + str(i) else: month = str(i) for j in range(1,ri[i]+1): if j < 10: day = "0" + str(j) else: day = str(j) end = month + day#end是字符串 if end[:3] in shunzi or end[1:4] in shunzi: res += 1 print(res) import datetime shunzi = ['012','123','234','345','456','567','678','789'] res = 0 d = datetime.datetime(2022,1,1) #第一个是datetime模块,第二个是datetime模块中的datetime类如math中的pi for i in range(365):#循环365次每次日期加一d += datetime.timedelta(days = 1) if d.month < 10: month = '0' +str(d.month) else: month = str(d.month) if d.day < 10: day = '0' + str(d.day) else: day = str(d.day) end = month + day if end[:3] in shunzi or end[1:4] in shunzi: res += 1 d += datetime.timedelta(days = 1)#timedelta指时间增量 print(res)