IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 2022蓝桥杯模拟赛 python -> 正文阅读

[Python知识库]2022蓝桥杯模拟赛 python

1.

以下是一个 25 行 25 列的字母矩阵,全部由字母 A 和 B 组成。
AAAAAAABABBAABABABAAAAAAA
ABBBBBABBAABBBBBABABBBBBA
ABAAABABBBABAABBBBABAAABA
ABAAABABBBBBAABAABABAAABA
ABAAABABBABABBABABABAAABA
ABBBBBABBBABAABBBBABBBBBA
AAAAAAABABABABABABAAAAAAA
BBBBBBBBABAABABBBBBBBBBBB
AABAABABBAAABBAAABABBBBBA
ABBABABBBABBAAAABBBBAAAAB
BBBBAAABABAABABAABBBAABBA
BBAABABABAAAABBBAABBAAAAA
ABABBBABAABAABABABABBBBBA
AAAABBBBBABBBBAAABBBABBAB
AABAABAAABAAABAABABABAAAA
ABBBBBBBBABABBBBABAABBABA
ABBBAAABAAABBBAAAAAAABAAB
BBBBBBBBABBAAABAABBBABBAB
AAAAAAABBAAABBBBABABAABBA
ABBBBBABBAABABAAABBBABBAA
ABAAABABABBBAAAAAAAAAABAA
ABAAABABABABBBABBAABBABAA
ABAAABABBABBABABAABAABAAA
ABBBBBABABBBBBABBAAAABAAA
AAAAAAABAABBBAABABABBABBA
请问在这个矩阵中有多少个字母A?
s=open('C:\\Users\\10698\\Desktop\\test.txt')
f=list(s)
res=[]
for i in range(len(f)):
  res+=f[i]
print(res.count('A'))
num=[]
cnt=0
with open('22.txt') as f:
    for line in f.readlines():
     for i in range(len(line)):
         if line[i]=='A':
             cnt+=1
print(cnt)

2.



    如果一个整数的某个数位包含 2 ,则称这个数为一个“最2数字”。例如:102、2021 都是最2数字。
    请问在 1(含) 到 2021(含) 中,有多少个最2数字。
res=0
for i in range(1,2022):
  c=i
  while c:
    a=c%10
    if a==2:
      res+=1
      break
    c//=10
print(res)

寻找2020

nums=[]
with open('2020.txt') as f:
    for line in f.readlines():
        nums.append(list(line.strip()))
res = 0
for i in range(len(nums)):
    for j in range(len(nums)-3):
        if nums[i][j] == '2' and nums[i][j+1] == '0' and nums[i][j+2] == '2' and nums[i][j+3] == '0':
           res +=1
for i in range(len(nums)-3):
	for j in range(len(nums)):
	    if nums[i][j] == '2' and nums[i+1][j] == '0' and nums[i+2][j] == '2' and nums[i+3][j] == '0':
	          res += 1
for i in range(len(nums)-3):
	for j in range(len(nums)-3):
	     if nums[i][j] == '2' and nums[i+1][j+1] == '0' and nums[i+2][j+2] == '2' and nums[i+3][j+3] == '0':
	         res += 1
print(res)
        

数列求值

a=[0 for i in range(20190324+5)]
a[1]=1
a[2]=1
a[3]=1
for i in range(4,20190324+1):
    a[i]=(a[i-1]+a[i-2]+a[i-3])%10000
print(a[20190324])

平方和

N=2019
num=[]
for a in range(1,N+1):
    b=a
    while b:
        c=b%10
        if c==2 or c==0 or c==1 or c==9:
            num.append(a)
            break
        b//=10
#print(sum(num))
cnt=0
for i in range(len(num)):
    cnt+=num[i]*num[i]
print(cnt)

单词分析

s=input()
cnt=[0 for i in range(26)]
for i in range(len(s)):
    cnt[ord(s[i])-ord('a')]+=1
maxm=max(cnt)
for i in range(len(s)):
    if cnt[i]==maxm:
        print(chr(ord('a')+i))
        break
print(maxm)

约数个数

n=1200000
i=1
cnt=0
while i<=n**0.5:
    if n%i==0:
        cnt+=2
    i+=1
if n**0.5==int(n**0.5):
    cnt-=1
print(cnt)

成绩统计

n=int(input())
a=[]
for i in range(n):
    a.append(int(input()))
jige=0
youxiu=0
for i in range(n):
    if a[i]>=60:
        jige+=1
    if a[i]>=85:
        youxiu+=1
print("%d%%"%(round(jige/n*100)))
print("%d%%"%(round(youxiu/n*100)))

跑步锻炼

from datetime import date,timedelta
ed=date(2020,10,1)#结束日期
st=date(2000,1,1)#开始日期
res=0
while st<=ed:
    if st.day==1 or st.weekday()==0:#或者用st.isoweekday()==1
        res+=2
    else:
        res+=1
    st+=timedelta(days=1)
print(res)

成绩分析

a=[]
n=int(input())
for i in range(n):
    a.append(int(input()))
summ=sum(a)
maxm=max(a)
minm=min(a)
print(maxm)
print(minm)
print("%.2f"%(summ/n))

平面分割

m=20
n=20
cnt=m*m+n*n*0.5+2*m*n-m+0.5*n+1
print(int(cnt))

蛇形填数

a=20
b=20
summ=0
c=a+b-1
for i in range(1,c+1):
    summ+=i
cnt=0
if summ%2==0: #最后一个数为偶数
    cnt=summ-b+1
else: #最后一个数为奇数
    cnt=summ-a+1
print(cnt)

既约分数

def gcd(a, b):
    return a if b == 0 else gcd(b, a % b)
ans = 0
for zi in range(1, 2021):
    for mu in range(1, 2021):
        if gcd(zi, mu) == 1:
            ans += 1
print(ans)

门牌制作

x=[i for i in range(1,2021)]
cnt=0
for y in x:
    j=y
    while j:
        a=j%10
        if a==2:
            cnt+=1
        j//=10
print(cnt)

方程整数解

try:
  while True:
    n=int(input())
    len=int(n**0.5)
    flag=0
    for a in range(1,len+1):
      for b in range(a,len+1):
        for c in range(b,len+1):
          if a*a+b*b+c*c==n:
            print("%d %d %d"%(a,b,c))
            flag=1
    if flag==0:
      print("No Solution")
  
except:
  pass
    

最大降雨量

注意读题,求的不是七周中位数的和,而是七周中位数的中位数的最大值

如图

a,b,c,x,e,f,g分别是每周的中位数。

而x是a,b,c,x,e,f,g是这七周的每一周的中位数的中位数

题目的要求是让我们最大化这个x;

我们可以假定x已经是我们要求的值,那么为了让x符合题目信息,我们必须让第4周的后3天,第5,6,7周的后4天都大于这个值。

那么很显然有15个数比x大,那么x就等于49 - 15 = 34;

年号字串

n = 2019
s = ''
while n > 0:
    n -= 1
    a, b = n//26, n%26
    s += chr(b+ord('A'))
    n = a
print(s[::-1])

组队

num=[]
with open('team.txt') as f:
    for line in f.readlines():
      num.append(list(line.split()))

flag=[0 for i in range(len(num)+1)]
ssum=0
maxx=0
last=0
for i in range(len(num)):
    if int(num[i][1])>maxx and flag[i]==0:
        maxx=int(num[i][1])
        flag[last]=0
        flag[i]=1
        last=i
ssum+=maxx
maxx=0
last=0
for i in range(len(num)):
    if int(num[i][2])>maxx and flag[i]==0:
        maxx=int(num[i][2])
        flag[last]=0
        flag[i]=1
        last=i
ssum+=maxx
maxx=0
last=0
for i in range(len(num)):
    if int(num[i][3])>maxx and flag[i]==0:
        maxx=int(num[i][3])
        flag[last]=0
        flag[i]=1
        last=i
ssum+=maxx
maxx=0
last=0
for i in range(len(num)):
    if int(num[i][4])>maxx and flag[i]==0:
        maxx=int(num[i][4])
        flag[last]=0
        flag[i]=1
        last=i
ssum+=maxx
maxx=0
last=0
for i in range(len(num)):
    if int(num[i][5])>maxx and flag[i]==0:
        maxx=int(num[i][5])
        flag[last]=0
        flag[i]=1
        last=i
ssum+=maxx
maxx=0
last=0
print(ssum)

特别数的和

N=int(input())
ssum=0
for i in range(1,N+1):
    a=i
    while a:
        b=a%10
        if b==2 or b==0 or b==1 or b==9:
            ssum+=i
            break
        a//=10
print(ssum)

[蓝桥杯2019初赛]数的分解

def check(a):
    while a:
        b=a%10
        if b==2 or b==4:
            return 0
        a//=10
    return 1

cnt=0
for i in range(1,2019+1):
    for j in range(i+1,2019+1):
        k=2019-i-j
        if i<j and j<k and check(i) and check(j) and check(k):
            cnt+=1
print(cnt)

[蓝桥杯2019初赛]数的分解

n=int(input())
a=list(map(int,input().split()))
j=1
deep=1
ff=0
maxx=0
i=0
while i<n:
    b=[]
    for k in range(j):
        if i+k<n:
            b.append(a[i+k])
        else:
            break
    #print(b)
    if sum(b)>maxx:
        maxx=sum(b)
        ff=deep
    i+=j
    j*=2
    deep+=1
print(ff)

[蓝桥杯2019初赛]矩形切割

a=2019
b=324
cnt=0
while a and b:
    cnt+=1
    a=a-b
    a,b=max(a,b),min(a,b)
print(cnt)

质数

from math import sqrt
def check(n):
    i=2
    while i<=sqrt(n):
        if n%i==0:
            return 0
        i+=1
    return 1

cnt=1 #2是第一个质数,偶数
i=3
while True:
    if check(i):
        cnt+=1
        if cnt==2019:
            print(i)
            break
    i+=2

        

[蓝桥杯2019初赛]旋转

m,n=map(int,input().split())
a=[]
for i in range(m):
    a.append(list(map(int,input().split())))

#找规律
# (1,1)->(1,3) (1,2)->(2,3) (1,4)->(4,3)
# (2,1)->(1,2) ... (2,4)->(4,2)
# (3,1)->(1,1) ... (3,4)->(4,1)
# (2,2)->(2,2) (2,3)->(3,2)
# m=3,n=4  顺时针90度,行=原来的列,列=n-原来的行

b=[[0 for i in range(m)] for i in range(n)]
for i in range(m):
    for j in range(n):
        b[j][m-1-i]=a[i][j]

for i in range(n):
    for j in range(m):
        print(b[i][j],end=" ")
    print()

[蓝桥杯2019初赛]最短路

g=[[float('inf') for i in range(26)] for j in range(26)]
st=[0 for i in range(26)]
n=19 #共有19个点

def dijkstra():
    dist=[float('inf') for i in range(26)]
    dist[1]=0
    for i in range(n):
        t=-1
        for j in range(1,n+1):
            if (not st[j]) and (t==-1 or dist[t]>dist[j]):
                t=j #核心,加入当前未加入中距离最小的点
        for j in range(1,n+1): #每次加入一个点,更新值
            dist[j]=min(dist[j],dist[t]+g[t][j])
        st[t]=1
    return dist[19]
    


def add(a,b,c):
    g[a][b]=c
    g[b][a]=c

#输入距离
add(1,2,2)
add(1,3,1)
add(1,4,1)
add(1,5,1)
add(2,7,1)
add(2,10,2)
add(3,6,3)
add(3,7,3)
add(3,4,3)
add(4,5,1)
add(4,7,2)
add(4,8,1)
add(4,9,2)
add(5,8,1)
add(5,9,3)
add(6,7,1)
add(6,10,1)
add(7,9,3)
add(7,11,2)
add(8,9,1)
add(8,12,2)
add(9,13,3)
add(10,19,2)
add(11,12,3)
add(11,14,1)
add(11,16,2)
add(12,13,1)
add(12,18,1)
add(13,17,1)
add(13,19,1)
add(13,14,2)
add(14,16,1)
add(15,16,1)
add(15,17,1)
add(15,18,3)
add(18,19,1)
#迪杰斯特拉模板再背一遍
print(dijkstra())

    

字串数字

n="LANQIAO"
ssum=0
for i in range(len(n)):
    ssum+=(ord(n[i])-ord('A')+1)*pow(26,len(n)-1-i)
print(ssum)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:19:02  更:2022-04-09 18:21:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:18:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码