欢迎光临
我们一直在努力

天梯赛练习(3月9日)

L1-058 6翻了

分数:15

题目:

666.JPG

“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!

本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。

考点:模拟

思路:

题目分成三种情况模拟即可:

  • 当大于3个6的时候,就输出9。
  • 当大于9个6的时候,就输出27。
  • 其余情况不变。

复杂度:O(n)

import sys
input=sys.stdin.readline
a=input().rstrip('\\n')
n=len(a)
i=0

while i<n:
if a[i]=='6':
j=i
while j<n and a[j]=='6':
j+=1
cnt=j-i
if cnt>9:
print('27',end='')
elif cnt>3:
print('9',end='')
else:
print('6'*cnt,end='')
i=j
else:
print(a[i],end='')
i+=1

L1-059 敲笨钟

分数20

题目:

微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。于是这句诗就被糟改为“寻章摘句老雕虫,晓月当帘敲笨钟”。

现在给你一大堆古诗词句,要求你写个程序自动将压“ong”韵的句子糟改成“敲笨钟”。

考点:模拟

思路:

判断第一句和最后一句的结尾那个单词包含了”ong“没,如果包含的话,将最后一句话的后三个词修改成qiao ben zhong。如果不满足直接输出Skipped。

复杂度:O(nm)

import sys
input=sys.stdin.readline
n=int(input())
for _ in range(n):
a=list(input().split())
ok=False
for i,v in enumerate(a):
if ',' in v:
if "ong," in v:
ok=True
if '.' in v:
if "ong." in v:
if ok:
a[-1]="zhong."
a[-2]="ben"
a[-3]="qiao"
if a[-1]!="zhong." or a[-2]!="ben" or a[-3]!="qiao":
print("Skipped")
continue
print(*a)

L1-060 心理阴影面积

分数5

题目:

xlyy.JPG

这是一幅心理阴影面积图。我们都以为自己可以匀速前进(图中蓝色直线),而拖延症晚期的我们往往执行的是最后时刻的疯狂赶工(图中的红色折线)。由红、蓝线围出的面积,就是我们在做作业时的心理阴影面积。

现给出红色拐点的坐标 (x,y),要求你算出这个心理阴影面积。

考点:模拟

思路:

对(x,y)的点向下做垂,然后用正方形的一半减去做垂线位置的三角形和梯形面积即可。

复杂度:O(1)

import sys
input=sys.stdin.readline
x,y=map(int,input().split())
mj=5000
sjx=(x*y)//2
tx=(y+100)*(100-x)//2
print(mj-sjx-tx)

L1-061 新胖子公式

分数10

题目:

根据钱江晚报官方微博的报导,最新的肥胖计算方法为:体重(kg) / 身高(m) 的平方。如果超过 25,你就是胖子。于是本题就请你编写程序自动判断一个人到底算不算胖子。

输入格式:

输入在一行中给出两个正数,依次为一个人的体重(以 kg 为单位)和身高(以 m 为单位),其间以空格分隔。其中体重不超过 1000 kg,身高不超过 3.0 m。

输出格式:

首先输出将该人的体重和身高代入肥胖公式的计算结果,保留小数点后 1 位。如果这个数值大于 25,就在第二行输出 PANG,否则输出 Hai Xing。

考点:模拟

思路:

按题意模拟即可。

复杂度:O(1)

import sys
input=sys.stdin.readline
weight,height=map(float,input().split())
z=weight/height**2
print(f"{z:.1f}")
if z>25:
print("PANG")
else:
print("Hai Xing")

L1-062 幸运彩票

分数15

题目:

彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。

输入格式:

输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一张彩票的 6 位数字。

输出格式:

对每张彩票,如果它是幸运的,就在一行中输出 You are lucky!;否则输出 Wish you good luck.。

考点:模拟

思路:

取前三位和后三位的和看是否相等。

复杂度:O(n)

import sys
input=sys.stdin.readline
n=int(input())
for _ in range(n):
a=input().strip()
m=len(a)
ar=sum(int(a[i]) for i in range(3))
br=sum(int(a[m-i-1]) for i in range(3))

if ar==br:
print("You are lucky!")
else:
print("Wish you good luck.")

L1-063 吃鱼还是吃肉

分数10

题目

fish.JPG

肉.JPG

国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。

现在你要根据小宝宝的身高体重,给出补充营养的建议。

输入格式:

输入在第一行给出一个不超过 10 的正整数 N,随后 N 行,每行给出一位宝宝的身体数据:

性别 身高 体重

其中性别是 1 表示男生,0 表示女生。身高和体重都是不超过 200 的正整数。

输出格式:

对于每一位宝宝,在一行中给出你的建议:

  • 如果太矮了,输出:duo chi yu!(多吃鱼);
  • 如果太瘦了,输出:duo chi rou!(多吃肉);
  • 如果正标准,输出:wan mei!(完美);
  • 如果太高了,输出:ni li hai!(你厉害);
  • 如果太胖了,输出:shao chi rou!(少吃肉)。

先评价身高,再评价体重。两句话之间要有 1 个空格。

考点:模拟

思路:

按题意模拟即可。

复杂度:O(n)

import sys
input=sys.stdin.readline
n=int(input())
for _ in range(n):
xb,h,w=map(int,input().split())
a=[]
if xb==1:
if h==130:
a.append("wan mei!")
if h<130:
a.append("duo chi yu!")
if h>130:
a.append("ni li hai!")
if w==27:
a.append("wan mei!")
if w<27:
a.append("duo chi rou!")
if w>27:
a.append("shao chi rou!")
print(*a)
continue
if xb==0:
if h==129:
a.append("wan mei!")
if h<129:
a.append("duo chi yu!")
if h>129:
a.append("ni li hai!")
if w == 25:
a.append("wan mei!")
if w < 25:
a.append("duo chi rou!")
if w > 25:
a.append("shao chi rou!")
print(*a)
continue

L1-064 估值一亿的AI核心代码

分数20

题目

以上图片来自新浪微博。

本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是:

  • 无论用户说什么,首先把对方说的话在一行中原样打印出来;
  • 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉;
  • 把原文中所有大写英文字母变成小写,除了 I;
  • 把原文中所有独立的 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词;
  • 把原文中所有独立的 I 和 me 换成 you;
  • 把原文中所有的问号 ? 换成惊叹号 !;
  • 在一行中输出替换后的句子作为 AI 的回答。

输入格式:

输入首先在第一行给出不超过 10 的正整数 N,随后 N 行,每行给出一句不超过 1000 个字符的、以回车结尾的用户的对话,对话为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。

输出格式:

按题面要求输出,每个 AI 的回答前要加上 AI: 和一个空格。

考点:模拟

思路:

按题意模拟即可。

复杂度:O(n)

import sys
import re
input=sys.stdin.readline
n=int(input())
for _ in range(n):
a=input().rstrip('\\n')
print(a)

a=' '.join(a.split())
a=re.sub(r' +([^\\w\\s])', r'\\1', a)

ar=list(a)
m=len(ar)
for i,v in enumerate(ar):
if "A"<=v<="Z" and v!='I':
ar[i]=chr(ord(v)+32)

a=''.join(ar)
a=re.sub(r'\\bcan you\\b', '@@1@@', a)
a=re.sub(r'\\bcould you\\b', '@@2@@', a)
a=re.sub(r'\\bI\\b', 'you', a)
a=re.sub(r'\\bme\\b', 'you', a)
a=a.replace('?', '!')
a=a.replace('@@1@@', 'I can')
a=a.replace('@@2@@', 'I could')

print("AI: "+a)

L1-065 嫑废话上代码

分数5

题目

Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。

输入格式:

本题没有输入。

输出格式:

在一行中输出 Talk is cheap. Show me the code.。

考点:无

思路:

复杂度:O(1)

print("Talk is cheap. Show me the code.")

赞(0)
未经允许不得转载:171主机测评 » 天梯赛练习(3月9日)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址