1.乌鸦喝水
代码部分
# 计算机挑战赛--乌鸦喝水 x = int(input('请输入底边的边长:\n')) y = int(input('请输入容器内水面距离瓶子口的距离:\n')) z = 0 while 1: if x*x*y - 8*z < 2*x*x: print(f'需要投放{z}个石子乌鸦才能喝到水') break else: z = z + 1
2.竞赛学科分配
代码部分
# 计算机挑战赛--学科竞赛 people = int(input('输入想要参赛的人数:\n')) subject = input('想要参加选拔的科目:\n') list = [];total = 0;marks = []; for i in range(people): id,g1,g2,g3,g4,g5,g6 = map(int,input().split()) list.extend([[id,g1,g2,g3,g4,g5,g6]]) if subject == 'I': for i in range(people): List = list[i] x = List[2] y = List[3] new_total = x + y marks.append(new_total) count = marks.count(max(marks)) if count == 1: List1 = list[marks.index(max(marks))] print(List1[0]) else: List3 = [] position = [index for index,value in enumerate(marks) if value == max(marks)] print(position) for i in position: List2 = list[i] List3.append(List2[0]) List3.sort() print(List3) for i in List3: print(i) if subject == 'B': for i in range(people): List = list[i] x = List[2] y = List[4] new_total = x + y marks.append(new_total) count = marks.count(max(marks)) if count == 1: List1 = list[marks.index(max(marks))] print(List1[0]) else: List3 = [] position = [index for index,value in enumerate(marks) if value == max(marks)] for i in position: List2 = list[i] List3.append(List2[0]) List3.sort() for i in List3: print(i) if subject == 'H': for i in range(people): List = list[i] x = List[5] y = List[6] new_total = x + y marks.append(new_total) count = marks.count(max(marks)) if count == 1: List1 = list[marks.index(max(marks))] print(List1[0]) else: List3 = [] position = [index for index,value in enumerate(marks) if value == max(marks)] for i in position: List2 = list[i] List3.append(List2[0]) List3.sort() for i in List3: print(i)
3.机器人集合位置
代码部分
# 计算机挑战赛--集合位置 list = [];min_power = float('inf');v = 0;count = 1;sum = 0 #给出空列表,用于存储坐标值. 将初始最小能源消耗赋为无穷大,计数器与sum的值赋为0方便下方计算. K = int(input('输入机器人的总数K(0<K<=100):\n')) if K <= 0 or K > 100: print('错误!请确保K在正确范围之内!') else: for i in range(K): x,y = map(int,input(f'输入第{i+1}个坐标值(x,y)(x<=10,y<=1000):\n').split()) if x < 0 or x > 10 or y < 0 or y > 1000: print('错误!请确保(x,y)在正确范围之内!') break else: list.append([x,y]) #将用户输入的坐标值以子列表[]的形式添加到list列表中,形成一个二维列表,方便取用 for i in list: list.remove(i) #取出list列表中每一个坐标值,并暂时将其从列表中去除 for o in range(K-1): a = abs(list[o][0] - i[0]) b = abs(list[o][1] - i[1]) sum = a + b + sum #将去除后的list列表中的各个坐标依次拿出,并与取出的坐标作差,计算能量值 if sum <= min_power: min_power = sum;sum = 0 else: sum = 0 #如果得到的最小能量sum值小于min_power,将sum赋值给min_power,并将sum重新赋为0 list.insert(v,i) v = v + 1 #将删掉的坐标按照原位返回到list列表中 if min_power != float('inf'): print(min_power) else: print('出现错误!请检查输入')
4.产品质量抽查
代码部分
# 计算机挑战赛--产品质量抽查 N,M,K = map(int,input().split());list = [];v = 0;sum = 0;count = 0; for i in range(N): list.append(input()) for i in list: list.remove(i) for o in i: if o == '1': count = count + 1 for m in list: total = count for n in m: if n == '1': total = total + 1 if total >= sum: sum = total count = 0 list.insert(v,i) v = v + 1 print(sum)标签:count,21,Python,list,List3,marks,print,挑战赛,total From: https://blog.csdn.net/2301_79373897/article/details/142797232