您的位置:首页 > 编程语言 > Python开发

Python 基础练习 PAT水题(一)

2017-04-26 16:12 351 查看
#学习笔记
#用以练习Python基础
#

#原题链接 https://www.patest.cn/contests/pat-b-practise/1046

1046. 划拳(15)

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数N(<=100),随后N行,每行给出一轮划拳的记录,格式为:甲喊 甲划 乙喊 乙划其中“喊”是喊出的数字,“划”是划出的数字,均为不超过100的正整数(两只手一起划)。输出格式:在一行中先后输出甲、乙两人喝酒的杯数,其间以一个空格分隔。输入样例:
5
8 10 9 12
5 10 5 10
3 8 5 12
12 18 1 13
4 16 12 15
输出样例:
1 2


AC代码
n=int(input())
x=y=0
for i in  range(n):
L=str(input())
L=L.split(' ')
a1=int(L[0])
a2=int(L[1])
b1=int(L[2])
b2=int(L[3])
if(a2==a1+b1 and a2!=b2):
x=x+1
if(b2==a1+b1 and a2!=b2):
y=y+1
print("%d %d" % (y,x))


#原题链接:https://www.patest.cn/contests/pat-b-practise/1041

1041. 考试座位号(15)

每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数N(<=1000),随后N行,每行给出一个考生的信息:“准考证号 试机座位号 考试座位号”。其中准考证号由14位数字组成,座位从1到N编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。考生信息之后,给出一个正整数M(<=N),随后一行中给出M个待查询的试机座位号码,以空格分隔。输出格式:对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用1个空格分隔。输入样例:
4
10120150912233 2 4
10120150912119 4 1
10120150912126 1 3
10120150912002 3 2
2
3 4
输出样例:
10120150912002 2
10120150912119 1
AC代码
n=int(input())
#lists = [[] for i in range(n)]
lists=[]
for i in range(n):
lists.append(str(input()).split(' '))
m=int(input())
x = str(input())
x = x.split(' ')
for k in x:
for j in range(n):
if(lists[j][1]==k):
print(lists[j][0],lists[j][2])
break


原题链接:https://www.patest.cn/contests/pat-b-practise/1044

1044. 火星数字(20)

火星人是以13进制计数的:地球人的0被火星人称为tret。

地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。

火星人将进位以后的12个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。

例如地球人的数字“29”翻译成火星文就是“hel mar”;而火星文“elo nov”对应地球数字“115”。为了方便交流,请你编写程序实现地球和火星数字之间的互译。输入格式:输入第一行给出一个正整数N(<100),随后N行,每行给出一个[0, 169)区间内的数字 —— 或者是地球文,或者是火星文。输出格式:对应输入的每一行,在一行中输出翻译后的另一种语言的数字。输入样例:
4
29
5
elo nov
tam
输出样例:
hel mar
may
115
13
AC代码
N=int(input())
base=['tret','jan','feb', 'mar', 'apr', 'may', 'jun', 'jly', 'aug', 'sep', 'oct', 'nov', 'dec']
high=['tam', 'hel', 'maa', 'huh', 'tou', 'kes', 'hei', 'elo', 'syy', 'lok', 'mer', 'jou']
def Mars2Earth(mars):
S=mars.split(' ')
if len(S) ==2:
print((high.index(S[0])+1)*13+base.index(S[1]))
else:
try:
print(base.index(S[0]))
except:
print((high.index(S[0])+1)*13)
def Earth2Mars(earth):
h=earth//13
if earth%13!=0 and h >0:
print(high[h - 1], end=' ')
print(base[earth%13])
elif h>0 and earth%13==0:
print(high[h - 1])
elif h==0:
print(base[earth%13])
for i in range(N):
L=str(input())
if L.isdecimal() ==True:
Earth2Mars(int(L))
else:
Mars2Earth(L)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python
相关文章推荐