站长在线经典Python题:使用Python编程思想解决鸡兔同笼的问题的4种方法

欢迎你来到站长在线的Python题库,鸡兔写完Python教程以后,还是来一个Python的题目吧!想来想去,还是写一个经典的题目为好,作为本栏目的第一个题目。我就想到了比较热门的题目《鸡兔同笼的问题》,本文不是用数学的方法,而是用Python编程的方法解决鸡兔同笼的问题。解决问题具体的方法就是:顺序语句假设法、选择语句判定法、while循环语句遍历法、for循环语句遍历法。下面我来一一解答:

目录

1、顺序语句假设法

2、选择语句判定法

3、while循环语句遍历法

4、for循环语句遍历法


题目:有一些鸡和兔子关在一个笼子里面,从上面数,一共有10个头;从下面数,一共有36只脚。问:笼中有多少只鸡和兔?

这里写Python代码的时候,涉及到几个词语的英语单词,英语好的,就用英语,和我一样英语差的就写拼音,效果是一样的。(当然使用中文汉字也是可以的,但是不建议使用中文汉字。)

鸡:ji、chick

兔:tu、rabbit

头:tou、head

脚:jiao、foot

鸡脚:ji_jiao、chick_foot

兔脚:tu_jiao、rabbit_foot

接下来,用编程的思想,把题目已知条件,或者隐藏的条件,转换成变量,输入到Python里面。

1、顺序语句假设法

解题思路和编程流程:

鸡和兔的数量是10

鸡脚和兔脚的数量是36

全部是鸡时(即兔抬起两只脚时,视为鸡),脚的数量是10*2=20

总脚减去鸡的脚,剩余脚的数量就是兔的脚,剩余36-20=16只脚,这抬起来的16只脚全部是兔子的

每只兔子都是抬起了2只脚,这抬起来的16只脚,其实就是16/2=8只兔子

因为兔是8只,鸡就是10-8=2只

输出鸡和兔的数量

使用IDLE中文版新建文档的名称为:鸡兔同笼.py,写入以下代码:

tou = 10                        # 鸡头和兔头一共10只
jiao = 36                       # 鸡脚和兔脚一共36只
ji_jiao = tou*2                 # 全部为鸡时(即兔抬起两只脚时,视为鸡),鸡的脚是头的两倍
tu_jiao = jiao - ji_jiao        # 抬起来的两只脚就是兔子的脚
tu = tu_jiao // 2               # 兔等于抬起来的两只脚的一半,这里用//(整除)而不是/(除)
ji = tou - tu                   # 鸡的数量是总数减去兔的数量
print('鸡的数量',ji)            # 输出鸡的数量
print('兔的数量',tu)            # 输出兔的数量

运行结果为:

鸡的数量 2
兔的数量 8
>>> 

2、选择语句判定法

ji =int(input('请输入一个1至10数值的整数'))
tu = 10 - ji
if (2*ji+4*(10-ji)==36) and (ji + tu == 10):print("鸡:",ji,"兔:",tu)     # 输出鸡和兔的数量

运行结果:

输入的值是1的时候,不符合条件,没有显示:

请输入一个1至10数值的整数1
>>> 

当输入的值是2的时候,符合条件,显示结果:

请输入一个1至10数值的整数2
鸡: 2 兔: 8
>>> 

当然,这里总共才10,最多输入10次,就满足条件了,要是很大的数值的话,目前的方法还是不行的,可以使用下面的while循环和for循环。

3、while循环语句遍历法

ji = 0
tu = 0
while ji <= 10  and  tu <= 10:if ji + tu == 10:print("鸡%d只,有兔%d"%(ji,tu))if 2*ji + 4 * tu == 36:print("有鸡%d只,有兔%d只"%(ji,tu))breakji += 1tu = 10 - ji

运行结果为:

鸡1只,有兔9
鸡2只,有兔8
有鸡2只,有兔8只
>>> 

4、for循环语句遍历法

for ji in range(0,10):                  # 鸡的数量从1开始循环到10if 2*ji+4*(10-ji)==36:              # 2倍鸡的脚+4倍兔的脚是36print("鸡:",ji,"兔:",10-ji)     # 输出鸡和兔的数量

运行结果为:

鸡: 2 兔: 8
>>> 

到此为止,本文的《鸡兔同笼的问题》解决问题具体的方法就是:顺序语句假设法、选择语句判定法、while循环语句遍历法、for循环语句遍历法。已经讲解完毕了,有问题可以给我留言哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/57113.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt常用的按钮控件编程(五)-- QCommandLinkButton 按钮

文章目录 前言7、QCommandLinkButton按钮7.1 例程功能和程序执行效果7.2 生成项目7.3 添加资源文件7.4 代码编辑7.4.1 修改项目文件 _radiobutton.pro7.4.2 修改 main.cpp7.4.3 修改 widget.h7.4.4 修改 widget.cpp 7.5 切换Kit&#xff0c;获得运行在不同系统中的运行的执行文…

【python】tkinter程序打包成exe可执行文件相关知识点记录

打包流程&#xff1a; 进入带打包的文件夹目录&#xff0c;输入“cmd” 在cmd对话框中输入 pyinstaller -F -w -i 【exe图标位置&#xff08;ico文件&#xff09;】【程序入口文件】 pyinstaller -F -w -i i.ico test.py 具体如图&#xff0c;图片摘自python利用pyinstaller打…

chatgpt赋能python:Python如何进行P图——探索Python图像处理库的可能性

Python如何进行P图——探索Python图像处理库的可能性 介绍 随着数字化时代的到来&#xff0c;图像处理已不再是专业领域的专属&#xff0c;许多人也开始接触和学习图像处理。我们常见的图像处理软件有Photoshop和GIMP等&#xff0c;而在Python编程领域中&#xff0c;也有很多…

面向对象程序设计 C++总结笔记(1)

面向对象程序设计 学习方法 理解基本原理掌握程序设计方法加强动手实践 课程目标 理解面向对象程序设计的基本原理&#xff0c;掌握面向对象技术的基本概念和封装性、继承性和多态性&#xff0c;能够具有面向对象程序设计思想。掌握C语言面向对象的基本特性和C语言基础知识&…

深度学习实战5-卷积神经网络(CNN)中文OCR识别项目

文章目录 一、前期工作 导入库图片生成函数导入数据生成数据集函数 二、CNN模型建立 三、训练模型函数 四、训练模型与结果 五、验证 大家好&#xff0c;我是微学AI&#xff0c;今天给大家带来一个利用卷积神经网络&#xff08;CNN&#xff09;进行中文OCR识别&#xff0c;…

7个成功的DTC品牌出海营销策略,提高海外客户的忠诚度!

关键词&#xff1a;DTC品牌出海、DTC营销、客户忠诚度 近年来&#xff0c;普通消费者关心的事情发生了巨大变化。 60% 的消费者会特意从品牌而不是第三方零售商处购买。 从大型零售商处购买再成为主流。人们希望与他们关心并感到关心的品牌建立关系。他们希望支持独立企业并找到…

Cat.1热度居高不下,利尔达 NT26E系列模组带来更多新选择

2021年全球Cat.1处于爆发期&#xff0c;出货量达到1.2亿&#xff0c;仅在中国市场上&#xff0c;Cat.1出货量就达到了1.1亿。据近日市场研究公司Counterpoint最新的发布全球蜂窝物联网芯片跟踪报告&#xff0c;2021年第四季度&#xff0c;4G Cat.1出货量同比增长154%。今年的市…

Cat.1模组再添新选择,利尔达推出NT26U提供多元应用思路

Cat.1因模组成熟度高且可复用现有的LTE资源而广受欢迎&#xff0c;它不但成本低&#xff0c;还能在短时间内形成规模效应。随着2G/3G的加速退网&#xff0c;Cat.1作为中低速率应用场景中最适合保障通信能力的网络之一更是水涨船高。 基于展锐的Cat.1模组 作为LTE网络的“低配版…

短信接收流程

Android 短信接收流程 Android S 短信接收流程 Android 12 短信接收流程 指路 -> 短信发送流程 流程图

开题报告PPT怎么制作

毕业设计答辩的首要环节就是前期答辩&#xff0c;也叫作开题汇报答辩&#xff0c;主要内容是对后期设计制作的规划及时间安排&#xff0c;同时还有设计要达到什么目的效果&#xff0c;预测在制作工程中可能遇到的问题并且提出这些问题的解决方案&#xff0c;开题报告汇报时以PP…

springboot+微信小程序的点餐系统(开题报告+论文+答辩PPT+源码)

技术架构 SprongBootMysql微信小程序 简介 本点餐小程序是使用Java/JavaScript编程语言开发的&#xff0c;存储数据方面则用到了MySQL数据库。顾客可以使用小程序扫码功能扫描餐厅桌角的二维码就座&#xff0c;也可以点击排号等位由后台工作人员安排就座&#xff1b;通过首页…

毕业论文学术报告答辩开题报告PPT模板

模板介绍 毕业论文学术报告答辩开题报告PPT模板。一套论文答辩幻灯片模板&#xff0c;内含黑色,红色多种配色&#xff0c;风格设计&#xff0c;动态播放效果&#xff0c;精美实用。 希望下面这份精美的PPT模板能给你带来帮助&#xff0c;温馨提示&#xff1a;本资源使用PPT或…

python图片分享平台毕业设计开题报告

本文给出的python毕业设计开题报告&#xff0c;仅供参考&#xff01;&#xff08;具体模板和要求按照自己学校给的要求修改&#xff09; 选题目的和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于web网页的图片分享平台&#xff0c;整个网站项目使用了B/S架构…

高校通用论文开题报告PPT模板

模板介绍 高校通用论文开题报告PPT模板。一套开题报告幻灯片模板&#xff0c;内含青色,红色多种配色&#xff0c;风格设计&#xff0c;动态播放效果&#xff0c;精美实用。 希望下面这份精美的PPT模板能给你带来帮助&#xff0c;温馨提示&#xff1a;本资源使用PPT或PPTX等格…

计算机开题报告万能模板,计算机开题报告ppt模板

PPT内容 这是计算机开题报告ppt模板&#xff0c;包括了课题研究的意义和目的&#xff0c;论文提纲&#xff0c;研究的预期目标及主要特点及创新点&#xff0c;研究方法和途径等内容。 基于NS的无线网络的AODV路由协议仿真测试与性能分析 毕业论文开题报告 指导老师&#xff1a;…

chatglm+tesla m40低成本部署

chatglmtesla m40部署 tesla m40安装BIOS设置驱动下载并安装验证安装并切换WDDM模式 chatglm安装环境安装加载模型CUDA安装Torch安装源码修改 成功结果展示常见问题 本机配置 i5 13600k ,主板是微星760 bomer tesla m40安装 Tesla M40 24G实际上是计算卡&#xff0c;不是显卡&…

Win11 的这 19 个新功能,你都用上了吗?

Windows 11 是 Windows 的新版本&#xff0c;现在正在向受支持的 PC 推出多项新功能和改进。 Windows 11 于 10 月 5 日开始推出&#xff0c;微软也发布了 Windows 11 ISO 镜像。与之前的 Windows 10 更新不同&#xff0c;这个新的操作系统专注于面向消费者的功能和改进&#x…

使用WinINet和WinHTTP实现Http访问

Http访问有两种方式&#xff0c;GET和POST&#xff0c;就编程来说GET方式相对简单点&#xff0c;它不用向服务器提交数据&#xff0c;在这个例程中我使用POST方式&#xff0c;提交数据value1与value2&#xff0c;并从服务器得到他们的和&#xff08;value1 value2&#xff09;…

day02 创建第一个Windows窗口及Windows的消息处理

文章目录 第一个Windows窗口程序1. 入口函数2. 创建窗口类3. 注册窗口4. 创建窗口实例5. 处理消息事件6. 回调函数完整测试 Windows消息处理 第一个Windows窗口程序 1. 入口函数 Windows编程的入口函数&#xff1a; 建议直接F1查询官方文档&#xff0c;Ctrl CV int WINAPI W…

chatgpt赋能python:Python导入自己的文件:完全指南

Python导入自己的文件&#xff1a;完全指南 Python是一种高级编程语言&#xff0c;许多工程师在开发过程中使用它。当我们在编写Python应用程序时&#xff0c;可能需要将代码拆分为多个模块&#xff0c;以使其更易于维护和扩展。在这种情况下&#xff0c;我们需要导入自己的Py…