今日题单
吃鱼还是吃肉 PTA | 程序设计类实验辅助教学平台
降价提醒机器人PTA | 程序设计类实验辅助教学平台
幸运彩票 PTA | 程序设计类实验辅助教学平台
猜帽子游戏 PTA | 程序设计类实验辅助教学平台
谁管谁叫爹 PTA | 程序设计类实验辅助教学平台
就不告诉你 PTA | 程序设计类实验辅助教学平台
6翻了 PTA | 程序设计类实验辅助教学平台
代码示例
吃鱼还是吃肉
n = int(input())
for i in range(n):a, h, m = map(int, input().split())if a == 1:if h > 130:print('ni li hai!', end=' ')elif h == 130:print('wan mei!', end=' ')else:print('duo chi yu!', end=' ')if m > 27:print('shao chi rou!', end='')elif m == 27:print('wan mei!', end='')else:print('duo chi rou!', end='')else:if h > 129:print('ni li hai!', end=' ')elif h == 129:print('wan mei!', end=' ')else:print('duo chi yu!', end=' ')if m > 25:print('shao chi rou!', end='')elif m == 25:print('wan mei!', end='')else:print('duo chi rou!', end='')print()
降价提醒机器人
n, m = map(int, input().split())
for i in range(n):x = float(input())if x < m:print('On Sale! %.1f' % x)
幸运彩票
n = int(input())
for i in range(n):temp = int(input())a = temp // 1000b = temp % 1000if a // 100 + a//10%10 + a%10 == b // 100 + b//10%10 + b%10:print('You are lucky!')else:print('Wish you good luck.')
猜帽子游戏
n = int(input())
lst = list(map(int, input().split()))
k = int(input())
for i in range(k):guest = list(map(int, input().split()))cnt = wrong = 0for j in range(n):if guest[j] == lst[j]:cnt += 1if guest[j] != lst[j] and guest[j] != 0:wrong += 1if cnt >= 1 and wrong == 0:print('Da Jiang!!!')else:print('Ai Ya')
谁管谁叫爹
def MyAdd(num):ans = 0while num > 0:ans += num % 10num //= 10return ansn = int(input())
for i in range(n):na, nb = map(int, input().split())sa = MyAdd(na)sb = MyAdd(nb)xa = xb = 0if na % sb == 0:xa = 1if nb % sa == 0:xb = 1if xa == 1 and xb == 0:print('A')elif xa == 0 and xb == 1:print('B')else:if na > nb:print('A')else:print('B')
就不告诉你
a, b = map(int, input().split())
x = list(str(a*b))
x.reverse()
ans = 0
for i in x:ans = ans * 10 + int(i)
print(ans)
6翻了
s = input()
Len = len(s)
for i in range(Len, 9, -1):s = s.replace('6' * i, '27')
for i in range(9, 3, -1):s = s.replace('6' * i, '9')
print(s)
明日题单
-
刮刮彩票
“刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示:
每次游戏玩家会拿到一张彩票,上面会有 9 个数字,分别为数字 1 到数字 9,数字各不重复,并以 3×3 的“九宫格”形式排布在彩票上。
在游戏开始时能看见一个位置上的数字,其他位置上的数字均不可见。你可以选择三个位置的数字刮开,这样玩家就能看见四个位置上的数字了。最后玩家再从 3 横、3 竖、2 斜共 8 个方向中挑选一个方向,方向上三个数字的和可根据下列表格进行兑奖,获得对应数额的金币。
数字合计 获得金币 数字合计 获得金币 6 10,000 16 72 7 36 17 180 8 720 18 119 9 360 19 36 10 80 20 306 11 252 21 1,080 12 108 22 144 13 72 23 1,800 14 54 24 3,600 15 180 现在请你写出一个模拟程序,模拟玩家的游戏过程。
输入格式:
输入第一部分给出一张合法的彩票,即用 3 行 3 列给出 0 至 9 的数字。0 表示的是这个位置上的数字初始时就能看见了,而不是彩票上的数字为 0。
第二部给出玩家刮开的三个位置,分为三行,每行按格式
x y
给出玩家刮开的位置的行号和列号(题目中定义左上角的位置为第 1 行、第 1 列。)。数据保证玩家不会重复刮开已刮开的数字。最后一部分给出玩家选择的方向,即一个整数: 1 至 3 表示选择横向的第一行、第二行、第三行,4 至 6 表示纵向的第一列、第二列、第三列,7、8分别表示左上到右下的主对角线和右上到左下的副对角线。
输出格式:
对于每一个刮开的操作,在一行中输出玩家能看到的数字。最后对于选择的方向,在一行中输出玩家获得的金币数量。
输入样例:
1 2 3 4 5 6 7 8 0 1 1 2 2 2 3 7
输出样例:
1 5 6 180
-
字母串
英语老师要求学生按照如下规则写一串字母:
- 如果写了某个大写字母,下一个就必须写同个字母的小写,或者写字母表中下一个字母的大写;
- 如果写了某个小写字母,下一个就必须写同个字母的大写,或者写字母表中前一个字母的小写;
- 当然也可以什么都不写,就结束这个字母串。
例如
aAaABCDdcbBC
就是一个合法的字母串;而dEFfeFGhI
就是非法的。注意a
没有前一个字母,Z
也没有下一个字母。现在面对全班学生交上来的作业,老师请你写个程序自动批改。
输入格式:
输入在第一行给出一个不超过 100 的正整数 N。随后 N 行,每行给出一位学生的作业,即仅由英文字母组成的非空字母串,长度不超过 2×106。
输出格式:
对每位学生的作业,如果正确就在一行中输出
Y
,否则输出N
。输入样例:
2 aAaABCDdcbBC dEFfeFGhI
输出样例:
Y N
-
胎压监测
小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。
让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序,随时监测四轮的胎压,并给出正确的报警信息。报警规则如下:
- 如果所有轮胎的压力值与它们中的最大值误差在一个给定阈值内,并且都不低于系统设定的最低报警胎压,则说明情况正常,不报警;
- 如果存在一个轮胎的压力值与它们中的最大值误差超过了阈值,或者低于系统设定的最低报警胎压,则不仅要报警,而且要给出可能漏气的轮胎的准确位置;
- 如果存在两个或两个以上轮胎的压力值与它们中的最大值误差超过了阈值,或者低于系统设定的最低报警胎压,则报警要求检查所有轮胎。
输入格式:
输入在一行中给出 6 个 [0, 400] 范围内的整数,依次为 1~4 号轮胎的胎压、最低报警胎压、以及胎压差的阈值。
输出格式:
根据输入的胎压值给出对应信息:
- 如果不用报警,输出
Normal
;- 如果有一个轮胎需要报警,输出
Warning: please check #X!
,其中X
是出问题的轮胎的编号;- 如果需要检查所有轮胎,输出
Warning: please check all the tires!
。输入样例 1:
242 251 231 248 230 20
输出样例 1:
Normal
输入样例 2:
242 251 232 248 230 10
输出样例 2:
Warning: please check #3!
输入样例 3:
240 251 232 248 240 10
输出样例 3:
Warning: please check all the tires!
-
别再来这么多猫娘了!
以 GPT 技术为核心的人工智能系统出现后迅速引领了行业的变革,不仅用于大量的语言工作(如邮件编写或文章生成等工作),还被应用在一些较特殊的领域——例如去年就有同学尝试使用 ChatGPT 作弊并被当场逮捕(全校被取消成绩)。相信聪明的你一定不会犯一样的错误!
言归正传,对于 GPT 类的 AI,一个使用方式受到不少年轻用户的欢迎——将 AI 变成猫娘:
部分公司使用 AI 进行网络营销,网友同样乐于使用“变猫娘”的方式进行反击。注意:图中内容与题目无关,如无法看到图片不影响解题。当然,由于训练数据里并不区分道德或伦理倾向,因此如果不加审查,AI 会生成大量的、不一定符合社会公序良俗的内容。尽管关于这个问题仍有争论,但至少在比赛中,我们还是期望 AI 能用于对人类更有帮助的方向上,少来一点猫娘。
因此你的工作是实现一个审查内容的代码,用于对 AI 生成的内容的初步审定。更具体地说,你会得到一段由大小写字母、数字、空格及 ASCII 码范围内的标点符号的文字,以及若干个违禁词以及警告阈值,你需要首先检查内容里有多少违禁词,如果少于阈值个,则简单地将违禁词替换为
<censored>
;如果大于等于阈值个,则直接输出一段警告并输出有几个违禁词。输入格式:
输入第一行是一个正整数 N (1≤N≤100),表示违禁词的数量。接下来的 N 行,每行一个长度不超过 10 的、只包含大小写字母、数字及 ASCII 码范围内的标点符号的单词,表示应当屏蔽的违禁词。
然后的一行是一个非负整数 k (0≤k≤100),表示违禁词的阈值。
最后是一行不超过 5000 个字符的字符串,表示需要检查的文字。
从左到右处理文本,违禁词则按照输入顺序依次处理;对于有重叠的情况,无论计数还是替换,查找完成后从违禁词末尾继续处理。输出格式:
如果违禁词数量小于阈值,则输出替换后的文本;否则先输出一行一个数字,表示违禁词的数量,然后输出
He Xie Ni Quan Jia!
。输入样例1:
5 MaoNiang SeQing BaoLi WeiGui BuHeShi 4 BianCheng MaoNiang ba! WeiGui De Hua Ye Keyi Shuo! BuYao BaoLi NeiRong.
输出样例1:
BianCheng <censored> ba! <censored> De Hua Ye Keyi Shuo! BuYao <censored> NeiRong.
输入样例2:
5 MaoNiang SeQing BaoLi WeiGui BuHeShi 3 BianCheng MaoNiang ba! WeiGui De Hua Ye Keyi Shuo! BuYao BaoLi NeiRong.
输出样例2:
3 He Xie Ni Quan Jia!
输入样例3:
2 AA BB 3 AAABBB
输出样例3:
<censored>A<censored>B
输入样例4:
2 AB BB 3 AAABBB
输出样例4:
AA<censored><censored>
输入样例5:
2 BB AB 3 AAABBB
输出样例5:
AAA<censored>B
-
吃火锅
以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。
本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有
chi1 huo3 guo1
。输入格式:
输入每行给出一句不超过 80 个字符的、以回车结尾的朋友信息,信息为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。当读到某一行只有一个英文句点
.
时,输入结束,此行不算在朋友信息里。输出格式:
首先在一行中输出朋友信息的总条数。然后对朋友的每一行信息,检查其中是否包含
chi1 huo3 guo1
,并且统计这样厉害的信息有多少条。在第二行中首先输出第一次出现chi1 huo3 guo1
的信息是第几条(从 1 开始计数),然后输出这类信息的总条数,其间以一个空格分隔。题目保证输出的所有数字不超过 100。如果朋友从头到尾都没提
chi1 huo3 guo1
这个关键词,则在第二行输出一个表情-_-#
。输入样例 1:
Hello! are you there? wantta chi1 huo3 guo1? that's so li hai le our story begins from chi1 huo3 guo1 le .
输出样例 1:
5 3 2
输入样例 2:
Hello! are you there? wantta qi huo3 guo1 chi1huo3guo1? that's so li hai le our story begins from ci1 huo4 guo2 le .
输出样例 2:
5 -_-#
-
前世档案
网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。
现在我们把结论从左到右顺序编号,编号从 1 开始。这里假设回答都是简单的“是”或“否”,又假设回答“是”对应向左的路径,回答“否”对应向右的路径。给定玩家的一系列回答,请你返回其得到的结论的编号。
输入格式:
输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人数。
随后 M 行,每行顺次给出玩家的 N 个回答。这里用
y
代表“是”,用n
代表“否”。输出格式:
对每个玩家,在一行中输出其对应的结论的编号。
输入样例:
3 4 yny nyy nyn yyn
输出样例:
3 5 6 2
-
统计数字字符和空格
本题要求编写程序,输入一行字符,统计其中数字字符、空格和其他字符的个数。建议使用switch语句编写。
输入格式:
输入在一行中给出若干字符,最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
blank = 空格个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。请注意,等号的左右各有一个空格,逗号后有一个空格。
输入样例:
在这里给出一组输入。例如:
Reold 12 or 45T
输出样例:
在这里给出相应的输出。例如:
blank = 3, digit = 4, other = 8
-
随机输一次
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现要求你编写一个控制赢面的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方意识到你在控制结果,你需要隔 K 次输一次,其中 K 是系统设定的随机数。
输入格式:
输入首先在第一行给出正整数 N(≤10),随后给出 N 个系统产生的不超过 10 的正随机数 { K1,K2,⋯,KN },数字间以空格分隔。这意味着第 i(i=0,1,⋯,N−1)次输局之后应该隔 Ki+1 次再让下一个输局。如果对方出招太多,则随机数按顺序循环使用。例如在样例中,系统产生了 3 个随机数 {2, 4, 1},则你需要:赢 2 次,输 1 次;赢 4 次,输 1 次;赢 1 次,输 1 次;然后再次回到第 1 个随机数,赢 2 次,输 1 次。
之后每行给出对方的一次出招:“ChuiZi”代表“锤子”、“JianDao”代表“剪刀”、“Bu”代表“布”。“End”代表输入结束,这一行不要作为出招处理。输入保证对方至少出了一招。
输出格式:
对每一个输入的出招,按要求输出赢或输局的招式。每招占一行。
输入样例:
3 2 4 1 ChuiZi JianDao Bu JianDao Bu ChuiZi ChuiZi ChuiZi JianDao Bu JianDao Bu ChuiZi End
输出样例:
Bu ChuiZi ChuiZi ChuiZi JianDao Bu Bu JianDao ChuiZi ChuiZi ChuiZi JianDao JianDao