1222 - 2021年秋季学期蓝桥杯PYTHON语言类选拔赛1

1184: 习题5-11 求多次落地弹球高度

题目描述

一个球从100m的高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。
求它从第一次落地时,到第N次落地时,共经过了多少米,第N次反弹多高。

输入

一个正整数N,表示球落地的次数。

输出

length=球第N次落地时所经过了距离
high=球第N次落地反弹的高度
小数点后保留4位小数。
注意:末尾输出换行。

样例输入 Copy
10
样例输出 Copy
length=199.8047
high=0.0977
来源/分类

C语言第四版教学实验-第五章 循环结构程序设计 

n=int(input())
length=0
high=50
for i in range(n):
    length+=high*2
    high/=2
print("length="+"{:.4f}".format(length))
print("high="+"{:.4f}".format(high*2))

做题感悟:实际问题。一个for循环解决。

演草纸上进行前三步的演算,high的值比较好求,同时也要构造条件将high的值和length的值联系起来,陷阱是这个:“求它从第一次落地时,到第N次落地时”。根据答案对循环的次数和循环的初始值进行取舍。

1307: 整数奇偶排序

[命题人 : 外部导入]

时间限制 : 1.000 sec  内存限制 : 32 MB

提交

解决: 838提交量: 2019统计

题目描述

输入10个整数,彼此以空格分隔。重新排序以后输出(也按空格分隔),要求:
1.先输出其中的奇数,并按从大到小排列;
2.然后输出其中的偶数,并按从小到大排列。

输入

任意排序的10个整数(0~100),彼此以空格分隔。

输出

可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔。

样例输入 Copy
0 56 19 81 59 48 35 90 83 75 
17 86 71 51 30 1 9 36 14 16 
样例输出 Copy
83 81 75 59 35 19 0 48 56 90
71 51 17 9 1 14 16 30 36 86
提示

多组数据,注意输出格式

1. 测试数据可能有很多组,请使用while(cin>>a[0]>>a[1]>>...>>a[9])类似的做法来实现;
2. 输入数据随机,有可能相等。

来源/分类

数据结构高分笔记

while True:
    try:
        a=list(map(int,input().split()))
        jishu=[]
        oushu=[]
        for i in range(len(a)):
            if a[i]%2!=0:
                jishu.append(a[i])
            else:
                oushu.append(a[i])
        jishu.sort(reverse=True)
        oushu.sort()
        jishu.extend(oushu)
        print(*jishu)
    except EOFError:
        break


做题感悟:排序问题。用列表。 

1369: 解密

[命题人 : 201501010119]

时间限制 : 1.000 sec  内存限制 : 128 MB

提交

解决: 894提交量: 1985统计

题目描述

湖南中医药大学有含浦、东塘 2 个校区,学校办学历史悠久,前身为 1934 年的湖南国医专科学校,1953
年创办湖南中医进修学校,1960 年创建普通高等本科院校——湖南中医学院,1979 年成为全国首批取得
中医类研究生学历教育资格的院校,1990 年原湖南科技大学成建制并入湖南中医学院,2002 年与湖南省
中医药研究院合并,2006 年经教育部批准更名为湖南中医药大学,2012 年进入湖南省一本招生序列。
目前,学校与湖南省中医药研究院实行校院合一的管理体制。学校学科门类齐全、中医药特色鲜明。学校
设有 18 个学院、24 个本科专业,涵盖医、理、工、管、文等 5 大学科门类。中医诊断学在本学科研究领
域居国内领先水平。
小 F 居住在含浦校区,他想和东塘校区的同学小 L 聊天,为了保证沟通安全,他发明了一种加密方式,这
种加密方式是这样的:对于一个 01 串,小 F 会将其从左到右每 8 位分成一组,最后一组可能不足 8 位,
对每组进行逆序操作,即如果原来是 bLbL+1bL+2 · · · bR−1bR, 逆序之后变成 bRbR−1bR−2 · · · bL−1bL。现在
小 F 已经加密好了一个串,并且将其发给了小 L,你能帮助小 L 得到这串密文对应的原始信息吗?

输入

单组数据。
一行一个 01 串,代表加密后的字符串,串长度大于 0, 小于等于 100。

输出

一行字符串,代表加密后的字符串所对应的原始信。

样例输入 Copy
100010110011101
样例输出 Copy
110100011011100
while True:
    try:
        strings = input()
        res, temp, n_count = "", "", 0
        for s in strings:
            res, cnt = s + res, n_count + 1
            if cnt >= 8:
                temp, cnt, res = f"{temp + res}", 0, ""
        print(temp + res)
    except:
        break

 做题感悟:这个代码是copy别人的,不知道为什么用切片过不了。

1713: 迷路的牛牛

[命题人 : admin]

时间限制 : 1.000 sec  内存限制 : 128 MB

提交

解决: 425提交量: 920统计

题目描述

牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他。

输入
每个输入包含一个测试用例。
每个测试用例的第一行包含一个正整数,表示转方向的次数N(N<=1000)。
接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转。
输出
输出牛牛最后面向的方向,N表示北,S表示南,E表示东,W表示西。
样例输入 Copy
3
LRR
样例输出 Copy
E
来源/分类
n=int(input())
a=input()
fangxiang=["N","E","S","W"]
c_index=0
for i in a:
    if i=='L':
        c_index=(c_index-1)%4
    elif i=='R':
        c_index = (c_index+1) % 4
print(fangxiang[c_index])

 做题感悟:实时控制方向的偏转。当把elif变为else的时候,答案会报错20%。

1048: 酷酷的单词

[命题人 : 外部导入]

时间限制 : 1.000 sec  内存限制 : 128 MB

提交

解决: 435提交量: 927统计

题目描述

输入一些仅由小写字母组成的单词。你的任务是统计有多少个单词是“酷”的,即每种字母出 现的次数都不同。 
 
比如 ada 是酷的,因为 a 出现 2 次,d 出现 1 次,而 1 和 2 不同。再比如,banana 也是酷的, 因为 a 出现 3 次,n 出现 2 次,b 出现 1 次。但是,bbacccd 不是酷的,因为 a 和 d 出现的次数 相同(均为 1次)。 

输入

输入包含不超过 30 组数据。每组数据第一行为单词个数 n (1<=n<=10000)。以下 n 行各包含一 个单词,字母个数为 1~30。

输出

对于每组数据,输出测试点编号和酷单词的个数。 

样例输入 Copy
2
ada
bbacccd
2
illness
a
样例输出 Copy
Case 1: 1
Case 2: 0
来源/分类

湖南省第十届大学生计算机程序设计竞赛

case_number = 1
while True:
    try:
        n = int(input())
        cool_count = 0
        for _ in range(n):
            word = input()
            char_count = {}
            for char in word:
                if char in char_count:
                    char_count[char] += 1
                else:
                    char_count[char] = 1
            if len(set(char_count.values())) == len(char_count) and len(word)!=1:
                cool_count += 1
        print(f"Case {case_number}: {cool_count}")
        case_number += 1
    except EOFError:
        break

做题感悟:用键值对统计出现的字母的个数,注意通过输入输出进行输出代码的修改。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值