蓝桥杯2022年第十三届省赛真题解答Python(持续更新中)

学习笔记,有些思路代码是看题解和博客

已更新:

1、纸张尺寸(大学B、C组)
2、数位排序(大学B、C组)
3、矩形拼接(研究生组、大学A、C组)
4、GCD(大学C组)
5、峰巢(大学B、C组)
6、消除游戏(研究生组、大学A、B组)

7、质因数个数(研究生组,大学A组)

纸张尺寸(大学B、C组)

1、题目

题目描述

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

输入格式

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

输出格式

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

样例输入
A0
样例输出
1189
841

2、思路

(列表、元组)

可以写一个函数,知道输入数组的数字(第二个数,比如A0的0),就可以得到对应的长和宽,本函数返回值是元组。

对应的长宽可以根据一个for循环来得到,通过观察可知l=w,w=l/2。

在函数的后面写输入、输出就好了。

3、代码

def paper_size(name):
    len=int(name[1])#name是字符串,取第二个数值
    l,w=1189,841#是0的话就直接返回
    for _ in range(len):#是0的话直接不进入循环
        l,w=w,l//2
    return l,w
name=input().strip()
l,w=paper_size(name)
print(l)
print(w)

数位排序(大学B、C组)

1、题目

题目描述

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

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

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

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

输入格式

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

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

输出格式

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

样例输入
13
5
样例输出
3

2、思路

(排序,数位之和)

第一步先写整数各个元素之和,用个函数封装起来。其思路是把整数转换为数组。

第二步是用排序函数sorted还有key,key是表示排序规则的

3、代码

#输入两个整数
n=int(input())
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值