本文共 3056 字,大约阅读时间需要 10 分钟。
#学习笔记
#用以练习Python基础
#
#原题链接 https://www.patest.cn/contests/pat-b-practise/1046
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。
下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。
输入格式:
输入第一行先给出一个正整数N(<=100),随后N行,每行给出一轮划拳的记录,格式为:
甲喊 甲划 乙喊 乙划
其中“喊”是喊出的数字,“划”是划出的数字,均为不超过100的正整数(两只手一起划)。
输出格式:
在一行中先后输出甲、乙两人喝酒的杯数,其间以一个空格分隔。
输入样例:
58 10 9 125 10 5 103 8 5 1212 18 1 134 16 12 15
输出样例:
1 2
AC代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。
输入格式:
输入第一行给出一个正整数N(<=1000),随后N行,每行给出一个考生的信息:“准考证号 试机座位号 考试座位号”。其中准考证号由14位数字组成,座位从1到N编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。
考生信息之后,给出一个正整数M(<=N),随后一行中给出M个待查询的试机座位号码,以空格分隔。
输出格式:
对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用1个空格分隔。
输入样例:
410120150912233 2 410120150912119 4 110120150912126 1 310120150912002 3 223 4
输出样例:
10120150912002 210120150912119 1
AC代码
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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 |
原题链接:
火星人是以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)区间内的数字 —— 或者是地球文,或者是火星文。
输出格式:
对应输入的每一行,在一行中输出翻译后的另一种语言的数字。
输入样例:
4295elo novtam
输出样例:
hel marmay11513
AC代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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) |