小白学习笔记

分享一下这几天准备蓝桥杯的笔记,因为是自己的思路过程所以有点乱

#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)
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值