博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 基础练习 PAT水题(一)
阅读量:6214 次
发布时间:2019-06-21

本文共 3056 字,大约阅读时间需要 10 分钟。

#学习笔记

#用以练习Python基础

#

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

1046. 划拳(15)

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。

下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。

输入格式:

输入第一行先给出一个正整数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 
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个空格分隔。

输入样例:

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 
in 
range
(n):
    
lists.append(
str
(
input
()).split(
' '
))
m
=
int
(
input
())
= 
str
(
input
())
= 
x.split(
' '
)
for 
in 
x:
    
for 
in 
range
(n):
        
if
(lists[j][
1
]
=
=
k):
            
print
(lists[j][
0
],lists[j][
2
])
            
break

原题链接:

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)区间内的数字 —— 或者是地球文,或者是火星文。

输出格式:

对应输入的每一行,在一行中输出翻译后的另一种语言的数字。

输入样例:

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 
in 
range
(N):
    
L
=
str
(
input
())
    
if 
L.isdecimal() 
=
=
True
:
        
Earth2Mars(
int
(L))
    
else
:
        
Mars2Earth(L)
本文转自 chaunceyjiang  51CTO博客,原文链接:http://blog.51cto.com/cqwujiang/1919672,如需转载请自行联系原作者
你可能感兴趣的文章
网络基础CCNP篇|PBR
查看>>
因计算机磁盘硬件的配置问题,windows无法启动
查看>>
【阿里云ACE】杭州新春活动,不一样的新年,不一样的程序猿们!
查看>>
歌曲《雪绒花》
查看>>
架构语言ArchiMate -业务层(Business Layer)
查看>>
微软私有云分享(R2)24 审核WDS部署
查看>>
centos 5.2 断电重启后 cacti不出图
查看>>
简单cdn(八)
查看>>
Orchard:处理1对多的关系
查看>>
Starship Troopers
查看>>
部署Small Business Server 2003服务器之一
查看>>
安装ISA2006标准版及配置发布EX2007 OWA笔记
查看>>
Active Directory的脱机碎片整理,Active Directory系列之七
查看>>
"误GHOST、误一键恢复"灾难应急方案
查看>>
IS-IS的配置实例
查看>>
运维跟开发一定有仇么?
查看>>
xcode symbol(s) not found for architecture i386错误解决方法
查看>>
从趣味游戏到排序算法(3)
查看>>
一个字符串小题目
查看>>
SharePoint Server中的用户信息管理
查看>>