蓝桥杯备赛|成绩统计|排列字母|纸张尺寸

目录

1 成绩统计

题目描述

输入描述

输出描述

输入输出样例

示例

1.1 解题思路

1.2 AC_Code

扫描二维码关注公众号,回复: 14722734 查看本文章

Python 标程

2 排列字母

问题描述

2.1 解题思路

2.2 AC_Code

Python 标程

3 纸张尺寸

问题描述

输入格式

输出格式

样例输入1

样例输出1

样例输入 2

样例输出 2

运行限制

3.1 解题思路

3.2 AC_Code

Python 标程


1 成绩统计

蓝桥杯题库502

题目描述

小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。

如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。

请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。

输入描述

输入的第一行包含一个整数 n (1≤n≤10^4),表示考试人数。

接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。

输出描述

输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。

输入输出样例

示例

#输入
7
80
92
56
74
88
100
0

#输出
71%
43%

1.1 解题思路

简单模拟题。

用 cnt1 表示及格的人数,cnt2 表示优秀的人数,那么答案即为 cnt1/n ​、cnt2/n​ 四舍五入后 ×100。百分号别忘记输出!

1.2 AC_Code

C++ 标程

Java 标程

Python 标程

import os
import sys

# 请在此输入您的代码
n = int(input())
cnt1 = 0
cnt2 = 0
for i in range(1,n+1):
  x = int(input())
  if x>= 60:
    cnt1 += 1
  if x>= 85:
    cnt2 += 1

print("{:.0f}%".format(round(100.0 * cnt1 / n , 2)))
print("{:.0f}%".format(round(100.0 * cnt2 / n , 2)))

2 排列字母

蓝桥杯题库2118

问题描述

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

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

例如,LANQIAO 排列后为 AAILNOQ。

又如,GOODGOODSTUDYDAYDAYUP 排列后为 AADDDDDGGOOOOPSTUUYYY。

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

WHERETHEREISAWILLTHEREISAWAY

AAAEEEEEEHHHIIILLRRRSSTTWWWY

2.1 解题思路

直接对字符串进行排序即可,可以使用各类语言的标准排序函数,例如C++中使用sort标准库函数;Java中转换成数组使用Arrays.sort排序;Python中先转换成list再进行排序,最后拼接成字符串(因为Python中无法修改字符串元素)。

也可以手动对字符串进行排序,直接输出结果。

a = 'AAAEEEEEEHHHIIILLRRRSSTTWWWY'
print(a)

2.2 AC_Code

C++ 标程

Java 标程

Python 标程

s = "WHERETHEREISAWILLTHEREISAWAY"
s = list(s)
s.sort()
print("".join(s))

3 纸张尺寸

蓝桥杯题库2120

问题描述

在 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

样例输入 2

A1

样例输出 2

841
594

运行限制

  • 最大运行时间:1s 
  • 最大运行内存: 512M

3.1 解题思路

根据题意维护长边长度 a 和短边长度 b 即可。对于输入 A0 而言,a=1189,b=841。

根据输入的 A 后面的数字 x ,循环 x 次:

—— 每次让长边 a 除以 2(向下取整),短边 b 不变。

—— 然后再根据a ,b 的大小关系进行调整,如果 a<b 则交换 a,b。

3.2 AC_Code

C++ 标程

Java 标程

Python 标程

import os
import sys

# 请在此输入您的代码
x = int(input()[1])
a,b = 1189, 841 # 维护长边长度a和短边长度b
# 输入A0,a=1189,b=841
# 输入Ax,根据x循环x次(对折x次)
for i in range(x):
  # 也可以直接a,b=b,a//2    
  a //= 2   # 每次让长边a除以2(向下取整),短边b不变
  if a < b:  # 再根据a,b的大小关系进行调整
    a, b = b, a  # 永远让a表示长边,永远让b表示短边
print(a)
print(b)

猜你喜欢

转载自blog.csdn.net/m0_57656758/article/details/129994304
今日推荐