python算法: 谁家孩子跑得最慢
一,for循环:
1,功能:重复执行同一段代码
语法:
for index in range(n):
# 循环体代码
index : 用来依次接收可迭代对象中的元素的变量名
range()函数:负责返回整数序列
流程图:

2,应用
range可以同时指定start 和stop,用for遍历并打印
|
1
2
3
4
|
# 指定 start和stop# print的参数 end=" " 用来使打印不换行for num in range(3,9): print(num, end=" ") |
运行结果:
3 4 5 6 7 8
二,谁家孩子跑得最慢题目与分析
1,题目:
张家、王家和李家各有三个孩子,
一天,三家的九个孩子在一起比赛跑步,规定:
跑第一名得9分,
跑第二名得8分,
跑第三名得7分,
…
跑第九名得1分。
比赛结果如下:
1.各家三个孩子的总分相同。
2.第一名是李家的孩子,第二名是王家的孩子。
3.所有孩子的名次没有并列的。
4.各家三个孩子的名次都没有相连的。
求最后一名是谁家的孩子?
2,分析:
1,总分9+8+7+6+5+4+3+2+1=45分,
所以各家均得分15分
2,同一家的孩子不会获得相连的名次,
李家第一,王家第二,所以第3名7分只能是张家
3,同一家的孩子不会获得相连的名次,
所以第4名6分不会是张家
4,
张: [7, 0, 0] 后两名和:8
王: [8, 0, 0] 后两名和:7
李: [9, 0, 0] 后两名和:6
因为后两名的和的范围: 6-8,
所以 3\2\1 不会出现在第二名
所以 第二名的范围: 4,5,6
第三名的范围: 1,2,3
说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/15/python-suan-fa-shui-jia-hai-zi-pao-de-zui-man/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com
三,代码实现
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 获得第一名的是李家的孩子,获得第二名的是王家的孩子zhang = [7, 0, 0] # zhang存放张家3个孩子的分数 张家孩子分数最高:7wang = [8, 0, 0] # wang存放王家3个孩子的分数 王家孩子分数最高:8li = [9, 0, 0] # li存放李家3个孩子的分数 李家孩子分数最高:9for zh in range(4, 6): # 通过循环得到9个孩子的分数 for w in range(4, 7): for l in range(4, 7): # 所有第二名各不相等 且 所有第三名也不相等 if zh != w and l != zh and l != w \ and 15 - zh - zhang[0] != 15 - w - wang[0] \ and 15 - zh - zhang[0] != 15 - l - li[0] \ and 15 - w - wang[0] != 15 - l - li[0]: # 将结果存入对应的数组元素 zhang[1] = zh zhang[2] = 15 - zh - 7 wang[1] = w wang[2] = 15 - w - 8 li[1] = l li[2] = 15 - l - 9print("张:", zhang) # 打印二维数组score,输出各家孩子的分数print("王:", wang)print("李:", li) |
运行结果:
张: [7, 5, 3]
王: [8, 6, 1]
李: [9, 4, 2]

浙公网安备 33010602011771号