python演算法: 抓交通肇事犯

刘宏缔的架构森林發表於2024-05-16

一,for迴圈:

1,功能:重複執行同一段程式碼
語法:

for index in range(n): 
    # 迴圈體程式碼

index : 用來依次接收可迭代物件中的元素的變數名
range()函式:負責返回整數序列

流程圖:

python演算法: 抓交通肇事犯

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,則有右側的方程式:

python演算法: 抓交通肇事犯

根據上述方程式,
我們可以遍歷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

相關文章