2022省赛蓝桥杯真题速刷python

问题描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

九进制正整数 (2022)9​ 转换成十进制等于多少?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 512M
import os
import sys
# 请在此输入您的代码
print(int('2022',9))
#class int(x,base = 10)
#--字符串或者数字
#base-进制数,默认十进制

问题描述

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 a 道题目, 周六和周日每天做 b 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 n 题?

输入格式

输入一行包含三个整数 a,b 和 n.

输出格式

输出一个整数代表天数。

样例输入

10 20 99

样例输出

8

评测用例规模与约定

对于 50%50% 的评测用例, 1≤a,b,n≤1061≤a,b,n≤106.

对于 100%100% 的评测用例, 1≤a,b,n≤10181≤a,b,n≤1018.

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
a,b,n = map(int,input().split())
week = a*5 + b*2  #计算总的做题数
days = (n//week)*7#做了几个整周的天数
n %= week         #剩余的题数
if n <= 5*a:      #如果剩余的题数,五天能做完
    days += n//a + (0 if n % a == 0 else 1)
    #天数+= 如果剩余的题数做x(n//a)天,每天做a道做完,后面的三目运算返回0天,如果还有没做完的,再加1天
else:    #如果剩余的题数,五天做不完,剩余两天能做完
    days += 5     #加上之前的五天
    n -= 5*a      #减去五天的做题数
    days += n//b + (0 if n % b == 0 else 1)
    #天数+= 如果剩余的题数做x(n//b)天,每天做b道做完,后面的三目运算返回0天,如果还有没做完的,再加1天
print(days)

问题描述

给定 nn 个整数 a1,a2,⋅⋅⋅,an求它们两两相乘再相加的和,即:

S=a1⋅a2+a1⋅a3+⋯+a1⋅an+a2⋅a3+⋯+an−2⋅an−1+an−2⋅an+an−1⋅an

输入格式

输入的第一行包含一个整数 n

第二行包含 nn 个整数 a1,a2,⋯ ,an

输出格式

输出一个整数 S,表示所求的和。请使用合适的数据类型进行运算。

样例输入

4
1 3 6 9

样例输出

117
import os
import sys

n=int(input())
S=0
a=list(map(int,input().split()))
s1=sum(a)
for i in range(0,n):
    s1-=a[i]
    S+=a[i]*s1
print(S)

问题描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小蓝要把一个字符串中的字母按其在字母表中的顺序排列。

例如,LANQIAO 排列后为 AAILNOQ。

又如,GOODGOODSTUDYDAYDAYUP 排列后为 AADDDDDGGOOOOPSTUUYYY。

请问对于以下字符串,排列之后字符串是什么?

WHERETHEREISAWILLTHEREISAWAY

import os
import sys
a=list('WHERETHEREISAWILLTHEREISAWAY')
a.sort()
for i in a:
    print(i,end="")

#a=list(input())
#a.sort()
#print("".join(a))

问题描述

爱丽丝要完成一项修剪灌木的工作。

有 NN 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晩会修剪一棵灌 木, 让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。当修剪了最右侧的灌木后, 她会调转方向, 下一天开 始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。

灌木每天从早上到傍晩会长高 1 厘米, 而其余时间不会长高。在第一天的 早晨, 所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。

输入格式

一个正整数 NN, 含义如题面所述。

输出格式

输出 NN 行, 每行一个整数, 第 ii 行表示从左到右第 ii 棵树最高能长到多高。

样例输入

3

样例输出

4
2
4
# xilzy's solution(规律是自己被修剪之后,下一次最长到自己被修剪的距离的二倍就是最大高度,所以只需要和左右两端点比较谁更远即可)
##test
##print(max(2,2))

#接收输入,并处理
N=int(input())
for i in range(N):
  l_d=i-0                  #距离左端点的距离
  r_d=N-1-i                #距离右端点的距离
  print(2*max(l_d,r_d))

 

问题描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。

例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。

小明想知道在整个 2022 年份中,一共有多少个顺子日期?

res = 0
for i in range(1, 13):
    for j in range(1, 32):
        s = "2022%02d%02d" % (i, j)
        if "012" in s or "123" in s:
            res += 1
print(res)
#  腊月是十二月

问题描述

在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm ×× 841mm, 将 A0 纸 沿长边对折后为 A1 纸, 大小为 841mm ×× 594mm, 在对折的过程中长度直接取 下整 (实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸, 依此类推。

输入纸张的名称, 请输出纸张的大小。

输入格式

输入一行包含一个字符串表示纸张的名称, 该名称一定是 A0、A1、A2、 A3、A4、A5、A6、A7、A8、A9 之一。

输出格式

输出两行,每行包含一个整数,依次表示长边和短边的长度。

样例输入1

A0

样例输出1

1189
841
import os
import sys

# 请在此输入您的代码
l=1189
w=841
i=0
s=input()
n=int(s[-1])
for i in range(n):
  l,w=w,l//2
print(l)
print(w)

 

问题描述

小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。当 两个数各个数位之和不同时, 将数位和较小的排在前面, 当数位之和相等时, 将数值小的排在前面。

例如, 2022 排在 409 前面, 因为 2022 的数位之和是 6, 小于 409 的数位 之和 13 。

又如, 6 排在 2022 前面, 因为它们的数位之和相同, 而 6 小于 2022 。

给定正整数 n,mn,m, 请问对 1 到 nn 采用这种方法排序时, 排在第 mm 个的元 素是多少?

输入格式

输入第一行包含一个正整数 nn 。

第二行包含一个正整数 mm 。

输出格式

输出一行包含一个整数, 表示答案。

import os
import sys

n=int(input())
m=int(input())
s=list(range(1,n+1))
s.sort(key=lambda x:sum(int(i) for i in str(x)))
print(s[m-1])

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小小的土拨鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值