两道题,作为开发岗的题也算是很简单的。即使没全ac的同学也基本是有些边界条件没考虑到。
第一题,a,b,c分别为不同的数字(0~9),给出一个n,求n=abc + acc,输出总的结果个数和分别对应的abc,acc。
代码如下,注意的点有两个,a作为百分位不能为0,且a, b, c不相等。
第二题,输入是这样的
num = int(input()) res = 0 ans = [] for i in range(1, 10): for j in range(10): for k in range(10): if i != j and i != k and j != k: abc = 100*i + 10*j + k acc = 100*i + 10*k + k if abc + acc == num: ans.append((abc, acc)) res += 1 print(res) for abc, acc in ans: print(abc, acc)
10
A B C D E F X H I J
A C I X E F J H D B
A B C D E F X H I J
A C I X E F J H D B
第一行有n个人,后面两行分别代表跳高排名,跳远排名。总成绩按比重计算(具体比重不知道),求X同学可能的排名。
换而言之,求跳高和跳远都比X排名高的,例题中是AC,所以最好为第三名。都比X低的,例子中是HJ,所以X最差为第八名。输出3 8,最好和最差的名次。
代码如下,
n = int(input()) tiaogao = input().split() tiaoyuan = input().split() pos1, pos2 = tiaogao.index('X'), tiaoyuan.index('X') ahead = set(tiaogao[:pos1]).intersection(set(tiaoyuan[:pos2])) behind = set(tiaogao[pos1+1:]).intersection(set(tiaoyuan[pos2+1:])) print(len(ahead) + 1, n - len(behind))
全部评论
(1) 回帖