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 

说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/21/python-suan-fa-zhua-jiao-tong-zhao-shi-fan/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,抓交通肇事犯的题目与解析

1,题目:

一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征。
甲说:牌照的前两位数字是相同的;
乙说:牌照的后两位数字是相同的,但与前两位不同;
丙是数学家,他说:4位的车号刚好是一个整数的平方。
请根据以上线索求出车号。

2,解析:

按照题目的要求造出一个前两位数相同、后两位数相同且相互间又不同的4位整数,然后判断该整数是否是另一个整数的平方。假设一个4位数a1 a2 a3 a4,则有右侧的方程式:

根据上述方程式,
我们可以遍历0到9之间的数字,如果满足上述条件:则找到问题的解

三,编写代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
# i代表前两位车牌号数字,j代表后两位车牌号的数字
# k代表车牌号
for i in range(10):     # 穷举前两位车牌数字
    for j in range(10):  # 穷举后两位车牌数字
        # 判断前两位和后两位数字是否相同
        if i != j:
            # 组成4位车牌号码
            k = 1000 * i + 100 * i + 10 * j + j
            # 判断k是否是某个数的平方,如果是平方表示找到了解
            # k的范围是1000到9999,所以temp取值 31 到 99
            for temp in range(31, 100):
                if temp * temp == k:
                    print("车牌号为: ", k)

运行结果:

车牌号为:  7744
posted @ 2024-05-16 10:17  刘宏缔的架构森林  阅读(40)  评论(0编辑  收藏  举报