一、问题描述
- 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征;
- 甲说:牌照的前两位数字相同;
- 乙说:牌照的后两位数字相同,但与前两位不同;
- 丙说:4位车号刚好是一个整数的平方;
- 根据上述线索求出车号。
二、问题分析
题目转化为:求一个四位数abcd,满足下述条件:
- α= h
- c = d
- α =! c
- 1000a+100b+10*c+d=x**2
三、实战
1、代码
代码如下:
# i代表前两位车牌号数字,j代表后两位车牌号的数字,k代表车牌号 flog = 0 # 循环标示变量,为1是退出所有循环 for i in range(10): if flog: break for j in range(10): if flog: break # 判断前两位和后两位数字是否相同 if i != j: # 组成4位车牌号 k = 1000 * i + 100 * i + i + 10 * j + j # 判断k是否是某个数的平方,是就输出 # 这里之所以从31开始,是因为小于30的数的平方小于4位数 for temp in range(31, 100): if temp * temp == k: print("车牌号为:", k) flog = 1 break
2、运行结果
运行结果如下:
车牌号为: 1156
Process finished with exit code 0