PAT——团体程序设计天梯赛-练习集(10分题集)Python 3

这个博客里面全部都是10分题的合集

活着就是为了改变世界,难道还有其他原因吗?—— 乔布斯

L1-008 求整数段和 (10分)

给定两个整数A和B,输出从A到B的所有整数以及这些数的和。

输入格式:
输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。

输出格式:
首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。

输入样例:
-3 8
输出样例:
在这里插入图片描述

A,B=map(int,input().split(" "))#赋值给AB
tally=0;su=0
for i in range(A,B+1,1):
    print("%5d"%(i),end="")
    tally+=1
    su+=i
    if tally%5==0:
        print(end="\n")
    elif i==B:
        print()
print("Sum = %d" % (su))

L1-010 比较大小 (10分)

本题要求将输入的任意3个整数从小到大输出。

输入格式:
输入在一行中给出3个整数,其间以空格分隔。

输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。

输入样例:

4 2 8

输出样例:

2->4->8
这个题用了三种方法写了一下

 #方法——
 A,B,C=map(int,input().split(" "))
 sum=A+B+C
 D=max(A,B,C)#直接利用max函数找出最大值 
 E=min(A,B,C)
 B=sum-D-E
 print("%d->%d->%d"%(E,B,D))

第二种方法比较绕 但是它是最原始的

#第二种方法
 A,B,C=map(int,input().split(" "))
 for i in range(3):
     if A<B:
         D=A
         A=B
         B=D
     elif A<C:
         D = A
         A = C
         C = D
     if B<C:
          D = B
          B = C
          C = D
 print("%d->%d->%d"%(C,B,A))

第三种方法也比较简单也是利用函数

#第三种方法
A,B,C=map(int,input().split())
M=[0,0,0]
M[0],M[1],M[2]=A,B,C
M.sort()   #将M列表按照升序排列
print("%d->%d->%d"%(M[0],M[1],M[2]))

L1-013 计算阶乘和 (10分)

对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。

输入格式:
输入在一行中给出一个不超过10的正整数N。

输出格式:
在一行中输出S的值。

输入样例:
3

输出样例:
9

N=int(input())
su=1;sum=0
for i in range(1,N+1,1):
    su=1
    for j in range(1,i+1,1):
        su*=j
    sum=su+sum
print(sum)

L1-018 大笨钟 (10分)

微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。

下面就请你写个程序,根据当前时间替大笨钟敲钟。

输入格式:
输入第一行按照hh:mm的格式给出当前时间。其中hh是小时,在00到23之间;mm是分钟,在00到59之间。

输出格式:
根据当前时间替大笨钟敲钟,即在一行中输出相应数量个Dang。如果不是敲钟期,则输出:

Only hh:mm. Too early to Dang.

其中hh:mm是输入的时间。

输入样例1:
19:05

输出样例1:
DangDangDangDangDangDangDangDang

输入样例2:
07:05

输出样例2:
Only 07:05. Too early to Dang.

Time=[]
Time=input()
A=int(Time[0:2])-12
B=A+1
if int(Time[0:2])>12:
    if int(Time[3:5])>0:
        print("Dang"*B, end="")
    else:
        print("Dang" * A, end="")
else:
    print("Only %s.  Too early to Dang."%(Time))

L1-022 奇偶分家 (10分)

给定N个正整数,请统计奇数和偶数各有多少个?

输入格式:
输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。

输出格式:
在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。

输入样例:
9
88 74 101 26 15 0 34 22 77

输出样例:
3 6

N=int(input())
odd=0;even=0
x=[]
X=input().split(" ")
for i in X:
    if int(i)%2==0:
        even+=1
    else:
        odd+=1
print("%d %d"%(odd,even))

L1-028 判断素数 (10分)

本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2
​31
​​ 的需要判断的正整数。

输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。

输入样例:
2
11
111
输出样例:
Yes
No

import math
N=int(input())
a=[]
for i in range(N):
    m=int(input())
    a.append(m)
for x in a:
    if x==1:
        print("No")
    elif x==2 or x==3:
        print("Yes")
    else:
        for j in range(2,int(math.sqrt(x))+1,1):#折半
         if x%j==0 or x==1:
            print("No")
            break
         elif j==int(math.sqrt(x)):
            print("Yes")
            break

L1-031 到底是不是太胖了 (10分)

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。

输入格式:
输入第一行给出一个正整数N(≤ 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W ≤ 300;单位:市斤),其间以空格分隔。

输出格式:
为每个人输出一行结论:如果是完美身材,输出You are wan mei!;如果太胖了,输出You are tai pang le!;否则输出You are tai shou le!。

输入样例:
3
169 136
150 81
178 155

输出样例:
You are wan mei!
You are tai shou le!
You are tai pang le!

Heigh=weight=0
L=[]
H=int(input())
for i in range(H):
    x=input().split(" ")
    L.extend(x)
for j in range(0,len(L),2):
    H=float(L[j])
    W=float(L[j+1])
    St=(H-100)*0.9#标准体重
    if abs(W/2-St)<St*0.1:# abs函数代表绝对值
        print("You are wan mei!")
    elif W/2-St>=St*0.1:
        print("You are tai pang le!")
    else:
        print("You are tai shou le!")

L1-037 A除以B (10分)

真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。

输入格式:
输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。

输出格式:
在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商应保留小数点后2位。

输入样例1:
-1 2

输出样例1:
-1/2=-0.50

输入样例2:
1 -3

输出样例2:
1/(-3)=-0.33

输入样例3:
5 0

输出样例3:
5/0=Error

A,B=map(int,input().split(" "))
if B<0:
    print("%d/(%d)=%.2f" % (A, B, A / B))
elif B==0:
    print("%d/%d=Error" % (A, B))
else:
    print("%d/%d=%.2f"%(A,B,A/B))

L1-040 最佳情侣身高差 (10分)

专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。

下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。

输入格式:
输入第一行给出正整数N(≤10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。

输出格式:
对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。

输入样例:
2
M 1.75
F 1.8

输出样例:
1.61
1.96

N=int(input())
L=[]
for i in range(N):
    X=input().split(" ")
    L.extend(X)
for j in range(1,len(L),2):
    H=float(L[j])
    if L[j-1]=="M":
      GH=H/1.09
      print("%.2f"%(GH))
    else:
        print("%.2f"%(H*1.09))

L1-041 寻找250 (10分)

对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。

输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。

输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。

输入样例:
888 666 123 -233 250 13 250 -222

输出样例:
5

X=[]
X=input().split(" ")
j=250
for i in range(0,len(X),1):
    if j == int(X[i]):
        print(i+1)
        break

L1-047 装睡 (10分)

你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们中间有可能在装睡的人,即至少一项指标不在正常范围内的人。

输入格式:
输入在第一行给出一个正整数N(≤10)。随后N行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。

输出格式:
按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行。

输入样例:
4
Amy 15 70
Tom 14 60
Joe 18 50
Zoe 21 71

输出样例:
Tom
Zoe

N=int(input())
Wl=[]
for i in range(N):
    Id = input().split(" ")
    Wl.extend(Id)
for j in range(0,len(Wl),3):
    Bt=int(Wl[j+1])
    Pl=int(Wl[j+2])
    if (Bt<15 or Bt>20) or (Pl<50 or Pl>70):
        print(Wl[j])

L1-055 谁是赢家 (10分)

某电视台的娱乐节目有个表演评审环节,每次安排两位艺人表演,他们的胜负由观众投票和 3 名评委投票两部分共同决定。规则为:如果一位艺人的观众票数高,且得到至少 1 名评委的认可,该艺人就胜出;或艺人的观众票数低,但得到全部评委的认可,也可以胜出。节目保证投票的观众人数为奇数,所以不存在平票的情况。本题就请你用程序判断谁是赢家。

输入格式:
输入第一行给出 2 个不超过 1000 的正整数 Pa 和 Pb,分别是艺人 a 和艺人 b 得到的观众票数。题目保证这两个数字不相等。随后第二行给出 3 名评委的投票结果。数字 0 代表投票给 a,数字 1 代表投票给 b,其间以一个空格分隔。

输出格式:
按以下格式输出赢家:

The winner is x: P1 + P2

其中 x 是代表赢家的字母,P1 是赢家得到的观众票数,P2 是赢家得到的评委票数。

输入样例:
327 129
1 0 1

输出样例:
The winner is a: 327 + 1

X=[]
P1=P2=0
p1,p2=map(int,input().split(" "))
for i in range(0,1,1):
    x=input().split(" ")
for i in range(0,len(x),1):
    if x[i]=="0":
       P1+=1
    else:
        P2+=1
if p1>p2 and P1>=1:
    print("The winner is a: %d + %d"%(p1,P1))
elif P1==3:
    print("The winner is a: %d + %d"%(p1,P1))
else:
    print("The winner is b: %d + %d"%(p2,P2))

L1-061 新胖子公式 (10分)

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

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

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

输入样例 1:
100.1 1.74

输出样例 1:
33.1
PANG

输入样例 2:
65 1.70

输出样例 2:
22.5
Hai Xing

M,H=map(float,input().split(" "))
standard=M/(H*H)
if standard>25:
    print("%.1f\nPANG"%standard)
else:
    print("%.1f\nHai Xing"%standard)

L1-063 吃鱼还是吃肉 (10分)

国家给出了 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 个空格。

输入样例:
4
0 130 23
1 129 27
1 130 30
0 128 27

输出样例:
ni li hai! duo chi rou!
duo chi yu! wan mei!
wan mei! shao chi rou!
duo chi yu! shao chi rou!

def BHW(vear1,vear2):#给男宝宝的自定义函数
    a = int(vear1);
    b = int(vear2)
    if a>130:#判断身高
        print("ni li hai!",end=" ")
    elif a==130:
        print("wan mei!",end=" ")
    else:
        print("duo chi yu!",end=" ")
    if b>27:#判断体重
        print("shao chi rou!")
    elif b==27:
        print("wan mei!")
    else:
        print("duo chi rou!")
def GHW(vear1,vear2):#给女宝宝的自定义函数
    a=int(vear1);b=int(vear2)
    if a>129:#判断身高
        print("ni li hai!",end=" ")
    elif a==129:
        print("wan mei!",end=" ")
    else:
        print("duo chi yu!",end=" ")
    if b>25:#判断体重
        print("shao chi rou!")
    elif b==25:
        print("wan mei!")
    else:
        print("duo chi rou!")

N=int(input())
K=[];j=0
for i in range(0,N,1):#对元素进行存储
    X=input().split(" ")
    K.extend(X)
for i in range(0,N,1):#对元素进行读取
    if K[j]=='1':
        BHW(int(K[j+1]),int(K[j+2]))
    else:
        GHW(K[j + 1], K[j + 2])
    j+=3

10分的题现在就结束了。

非常感谢一位叫做“才疏”的朋友,毕竟给我带来了动力,以及一些新的灵感,同时我也想说一句“才疏,加油!!!”

将我喜欢乔布斯的一句话送给你:

“活着就是为了改变世界,难道还有其他原因吗?”

江客:时荒

你可能感兴趣的:(浙大Python程序设计题,python,pta)