用python来解PAT乙级1088三人行-20-满分

tech2025-03-20  6

题意给出甲乙丙三人的能力值关系:甲的能力值确定是 2 位正整数;把甲的能力值的 2 个数字调换位置就是乙的能力值;甲乙两人能力差是丙的能力值的 X 倍;乙的能力值是丙的 Y 倍。

输入为你的能力值,X,Y

输出甲的能力值,以及甲乙丙三人和你的关系(‘ping’=,‘cong’>,‘gai’<)

本题先根据X,Y值求出甲乙丙的能力值,因为甲是两位数,这里可以使用两个for循环分别作为十位和个位,进行三人关系的试探,成功放入列表中,因为题目告诉可能答案不唯一,所以甲的能力值取列表最大值,另外列表长度为0直接输出‘No solution’

代码如下:

import math me,x,y = map(int,input().split()) a_res = []#甲的能力值 b_res = []#乙的能力值 for i in range(1,10):#十位不能为0,所以(1,10) for j in range(10): if abs(10*i+j-10*j-i)/x == (10*j+i)/y:#如果满足三人能力值关系 a_res.append(10*i+j) b_res.append(10*j+i) if len(a_res) == 0:#空列表,无解时输出'No Solution' print('No Solution') else:#有解时甲取最大解 a = max(a_res) b = b_res[a_res.index(a)] c = b / y#求出甲乙丙 res = [str(a)] for k in a,b,c: if k >me: res.append('Cong') elif k < me: res.append('Gai') else: res.append('Ping') print(' '.join(res))

提交结果:

 

最新回复(0)