假设有张、王、李三家,每家都有3个孩子。
某一天,这三家的9个孩子一起短跑比赛,规定不考虑年龄大小,第一名得9分,第二名得8分,第三名得7分,以此类推。
比赛结束后统计分数发现三家孩子的总分是相同的,同时限定这9个孩子的名次不存在并列的情况,且同一家的孩子不会获得相连的名次。
现已知获得第一名的是李家的孩子,获得第二名的是王家的孩子,要求编程求出获得最后一名的是哪家的孩子。
下面直接上代码:
########################
if __name__ == "__main__":
score = [([0] * 4) for i in range(4)] #定义列表,用来存储各个孩子的分数
#score[1]、score[2]和score[3]分别存放张家、王家和李家3个孩子的分数
#获得第一名的是李家的孩子,获得第二名的是王家的孩子
#初始化三家孩子的最高分数值
score[1][1] = 7 #score[1]存放张家3个孩子的分数
score[2][1] = 8 #score[2]存放王家3个孩子的分数
score[3][1] = 9 #score[3]存放李家3个孩子的分数
#通过循环得到9个孩子的分数
for zhang in range(4, 6):
for wang in range(4, 7):
for li in range(4, 7):
#9个孩子名次不存在并列的情况
if zhang != wang and li != zhang and li != wang \
and 15-zhang-score[1][1] != 15-wang-score[2][1] \
and 15-zhang-score[1][1] != 15-li-score[3][1] \
and 15-wang-score[2][1] != 15-li-score[3][1]:
#将结果存入对应的数组元素
score[1][2] = zhang
score[1][3] = 15-zhang-7
score[2][2] = wang
score[2][3] = 15-wang-8
score[3][2] = li
score[3][3] = 15-li-9
#打印二维数组score,输出各家孩子的分数
print("各家孩子的分数:")
for i in range(1, 4):
for j in range(1, 4):
print(score[i][j], end=' ')
print()
#for循环每一个孩子的分数值,并将最后一名孩子所来自的家庭保存到index中
for n in range(len(score)):
#print(n, score[n])
for m in score[n]:
if m == 1:
index = n #记录最后一名孩子所来自的家庭
#输出最后一名孩子来自的家庭
if index == 1:
print("最后一名孩子来自张家。\n")
elif index == 2:
print("最后一名孩子来自王家。\n")
else:
print("最后一名孩子来自李家。\n")
########################
执行结果如下:
各家孩子的分数:
7 5 3
8 6 1
9 4 2
最后一名孩子来自王家。
________________END______________
网友评论