python找出肇事者_python100例详解

python找出肇事者_python100例详解抓交通肇事犯1.问题描述一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征。甲说:牌照的前两位数字是相同的:乙说:牌照的后两位数字是相同的,但与前两位

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

抓交通肇事犯

 

1.问题描述

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

2.确定程序框架

python找出肇事者_python100例详解
根据流程,构建程序框架如下:

if __name__ == '__main__':
    # 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是否是某个数的平方,是就输出

 

3.判断车牌k是是否为某个数的平方,是就输出

再次利用循环来实现,循环变量 temp求平方后和车牌号k比较,相等则投到车牌号,优化算法,temp的初值应该从31开始,因为小于30的数的平方小于4位数。故该层循环为最内层循环,对每一个年牌号均作如此操作。

for temp in range(31, 100):
    if temp * temp == k:
        print("车牌号为:", k)

 

4.完整程序

根据上面的分析,完整程序如下:

if __name__ == '__main__':
    # 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是否是某个数的平方,是就输出
                for temp in range(31, 100):
                    if temp * temp == k:
                        print("车牌号为:", k)

 

5.运行结果

Pycharm运行程序,结果如下

车牌号为: 7744

 

6.优化算法

针对上述程序,如果已经找到相应的车牌号,请读者考虑循环是否还需要继续呢?答案是肯定的,因为算法在设计穷举循环的时候,并没有在找到车牌的时候就退出循环,而是继续穷举其他ij的情况。我们可以改进算法,设置一个“标识变量”,该变量初值为0,一旦找到车牌号,则改变该标识变量的值为1,每次循环判断一下标识变量的值。如果值为1,则退出所有循环,这样能有效的减少循环次数,改进的程序如下:

if __name__=="__main__":
    # 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 + 10 * j + j
                # 判断k是否是某个数的平方,是就输出
                for temp in range(31, 100):
                    if temp * temp == k:
                        print("车牌号为: ", k)
                        flog = 1
                        break
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164831.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BAPI 一些笔记

    BAPI 一些笔记BAPI的结构,BAPI里的代码可以分为这样两部分:1、一部分是数据校核,检查传入的数据是否满足创建相关业务对象的条件,并且把错误消息反馈出来;2、另一部分是更新数据库,即UPDATE/INSERT/DELETEdbtab这样的操作。1BAPI的优点bapi是面向对象的设计;bapi是固定的,一般不能修改;bapi可以被sap内部部件和非sap程序使用;bapi的成功和错误信息始终通过RETURN返回;bapi可以被许多开发平台使用;2何时该考虑使用BAPI设计

    2022年7月24日
    9
  • Jenkins下载_windows安装jenkins

    Jenkins下载_windows安装jenkins一、安装官网地址:https://jenkins.io/zh/1、下载war包,放到tomcat——》webapps下,双击bin——》startup.bat启动2、打开命令提示符。在命令提示符

    2022年8月1日
    3
  • xcopy-参数详解

    xcopy-参数详解XCOPY——目录复制命令 1.功能:复制指定的目录和目录下的所有文件连同目录结构。 2.类型:外部命令 3.格式:XCOPY[源盘:]〈源路径名〉[目标盘符:][目标

    2022年7月1日
    25
  • 机器学习总结(一):线性回归、岭回归、Lasso回归

    机器学习总结(一):线性回归、岭回归、Lasso回归线性回归作为一种回归分析技术,其分析的因变量属于连续型变量,如果因变量转变为离散型变量,将转换为分类问题。回归分析属于有监督学习问题,本博客将重点回顾标准线性回归知识点,并就线性回归中可能出现的问题进行简单探讨,引出线性回归的两个变种岭回归以及Lasso回归,最后通过sklearn库模拟整个回归过程。目录结构线性回归的一般形式线性回归中可能遇到的问题过拟合问题及其解决方法线性回归代码实现

    2022年6月12日
    61
  • SLAM理论_技术这么好有用不上

    SLAM理论_技术这么好有用不上原文链接:https://cloud.tencent.com/developer/article/1005894导语随着最近几年机器人、无人机、无人驾驶、VR/AR的火爆,SLAM技术也为大家熟知,被认为是这些领域的关键技术之一。本文对SLAM技术及其发展进行简要介绍,分析视觉SLAM系统的关键问题以及在实际应用中的难点,并对SLAM的未来进行展望。1.SLAM技术SLAM…

    2022年9月28日
    0
  • 大前端开发:前端如何开发 APP[通俗易懂]

    大前端开发:前端如何开发 APP[通俗易懂]做为一个前端开发人员,有时候除去传统的前端开发还需要进行其他开发,比如公众号开发,小程序开发,APP开发。本场Chat将带你从0开始,基于APICloud进行APP开发,你只需要会前端就可以。本场Chat主要内容为下:什么是APICloud?开发工具的了解;提供的前端框架;相关API;控制台;开始你的APP开发。本场Chat将会用一个新的案例从0来…

    2022年5月3日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号