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

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

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

运行结果为:

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

4、for循环语句遍历法

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

运行结果为:

鸡: 2 兔: 8
>>> 

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

本文地址:https://www.olzz.com/pythonjitutonglong.html
码字不易,打个赏呗
站长在线小编感谢你的支持!
站长在线站长一对一技术培训,100元两个小时
阿里云虚拟主机1G空间,120元一年
香港、美国虚拟主机100元一年,1000元永久
腾讯云双十一0.4折起,2核8G5M三年仅700元,2核4G8M三年仅198元

猜你喜欢

站长在线Python教程精讲:在Python函数中的全局变量详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中的局部变量详解》。本文的主要内容有:什么是全局变量、在函数外部定义的变量是全局变量、在函数内部定义中添加global关键词后变成全局变量。

2022-01-10  分类:Python教程  浏览:61次


站长在线Python教程精讲:在Python函数中的局部变量详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python函数中的局部变量详解》。本文的主要内容有:变量的作用域的概念、局部变量的概念、局部变量的举例。

2022-01-06  分类:Python教程  浏览:89次


Python常用英语及用法

站长在线站长,准备系统的学习Python知识,但是对我来说,英语实在是太差了,当然我知道的是,不仅仅我,很多人在学习Python的时候,也是不知道这些英语单词的意思与用法的,在这里站长在线站长就把这些英语整理出来,把英语以及中文意思、用法一起贴出来,让大家一起来学习。

2022-01-02  分类:Python教程  浏览:85次


站长在线Python精讲:Python中函数的返回值

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中函数的返回值》。本文的主要内容有:函数的返回值的含义、函数设置返回值的作用、return语句位置与多条 return语句的总结。

2021-12-29  分类:Python教程  浏览:104次


站长在线零基础Python完全自学教程22:在Python中函数的参数传递

欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础 Python完全自学教程》今天给大家分享的是第22课《在Python中函数的参数传递》。本文是一个大课程分成了下面5节小课程:在Python函数中理解形式参数和实际参数、在Python函数中参数传递的位置参数详解、在Python函数中的关键字参数详解、在Python函数中的默认参数详解、在Python函数中的可变参数详解。

2021-12-26  分类:Python教程  浏览:110次


站长在线零基础Python完全自学教程21:Python中函数的创建和调用

欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础 Python完全自学教程》今天给大家分享的是第21课《 Python中函数的创建和调用》。本文的主要内容有:在Python中函数的定义与创建、在Python中函数的调用详解。

2021-12-26  分类:Python教程  浏览:106次


站长在线Python精讲:在Python函数中的可变参数详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python函数中的可变参数》。本文的主要内容有:可变参数的定义、带一个星号*的可变参数和带两个星号**的可变参数。

2021-12-25  分类:Python教程  浏览:136次


站长在线Python精讲:在Python函数中的默认参数详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python函数中的默认参数详解》。本文的主要内容有:默认参数的概念和默认参数的示例、默认参数不能设置可变对象。

2021-12-24  分类:Python教程  浏览:113次


站长在线Python教程精讲:在Python函数中的关键字参数详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python函数中的关键字参数详解》。本文的主要内容有:关键字参数的含义和关键字参数的应用举例。

2021-12-23  分类:Python教程  浏览:127次


站长在线Python精讲:在Python函数中参数传递的位置参数详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python函数中参数传递的位置参数详解》。本文的主要内容有:实参和形参数量必须与定义时一致和实参和形参位置必须与定义时一致。

2021-12-22  分类:Python教程  浏览:130次