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.优化算法

针对上述程序,如果已经找到相应的车牌号,请读者考虑循环是否还需要继续呢?答案是肯定的,因为算法在设计穷举循环的时候,并没有在找到车牌的时候就退出循环,而是继续穷举其他i、j的情况。我们可以改进算法,设置一个“标识变量”,该变量初值为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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue 分页 Pagination

    vue 分页 Pagination<el-pagination@size-change=”handleSizeChange”@current-change=”handleCurrentChange” :current-page.sync=”paging.currentPage”:page-sizes=”paging.pageSizes” :page-size=”paging.pageSize”layout=”total,prev,pager,next,jumper” :total=”paging.total”.

    2022年10月1日
  • Linux下安装lrzsz

    Linux下安装lrzsz一. 手动编译安装1、 下载安装包,wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz  或者是  上传已经下载好的安装包lrzsz2、 cd /usr/local/src/3、 mkdir lrzsz4、 cd lrzsz/5、 解压:tar -xvf lrzsz-0.12.20.tar.gz6、 cd lrzsz…

    2022年6月23日
  • WPF Visifire.Charts4.6.1使用教程 附含源码

    WPF Visifire.Charts4.6.1使用教程 附含源码原因:前段时间,公司项目中用到Visifire.Charts4.5.6控件,项目中要求随时可以控制动画效果,用于在大屏上面展示,很酷炫。过程:但是没有源码,于是写了一个方法用动画去控制数量动态增长,无奈效率太低,多实例几个Chart就卡到爆,放弃。没有源码,怎么办呢,无奈之下反编译了一下dll,刚开始用reflector反编译,发现编译出来的大部分都用不了。然后又用ILSpy反编译…

    2022年7月21日
  • VUE如何关闭Eslint 的方法

    VUE如何关闭Eslint 的方法最近在家里面创建vue项目的时候,手一抖把UseESLinttolintyourcode?(Y/N)选择了Y,然后到写代码的时候,虽然说是浏览器完全能运行结果,但是在cmd就是一直报错。强迫症没有办法。所以大家安装的时候最好选择N.如果不小心选择错了没有关系的,下面就是解决办法,一)在你的项目中找到build—–&gt;webpack.base.conf.js文件…

    2022年4月29日
  • pycharm配置flask环境_调试是什么意思

    pycharm配置flask环境_调试是什么意思1.Flask的调试模式​ 通过调用run()方法启动Flask应用程序。但是,当应用程序正在开发中时,应该为代码中的每个更改手动重新启动它。为避免这种不便,请启用调试支持。如果代码更改,服务器将自行重新加载。它还将提供一个有用的调试器来跟踪应用程序中的错误(如果有的话)。在运行或将调试参数传递给run()方法之前,通过将application对象的debug属性设置为True来启用Debug模式。app.debug=Trueapp.run(debug=True)但是在pycharm编译器

    2022年8月29日
  • navicat premium 激活码_通用破解码

    navicat premium 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日

发表回复

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

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