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

    时间: 浏览:1811次  来源:站长在线
欢迎你来到站长在线的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
码字不易,打个赏呗
杨泽业感谢你的支持!

猜你喜欢

域名pythonw.cn出售

域名pythonw.cn的详细信息:Python网

2022-08-06  分类:域名出售  浏览:1386次


站长在线Python教程:Python中类定义详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中类定义详解》。

2022-02-23  分类:Python学堂  浏览:1932次


站长在线Python教程:python中面向对象相关概述详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《python中面向对象相关概述详解》。本文的主要内容有:面向对象是什么、面向对象中的对象是什么、Python中的类是什么、面向对象编程的特点有哪些?

2022-02-14  分类:Python学堂  浏览:1638次


站长在线零基础Python完全自学教程23:函数的返回值、作用域和匿名函数

导读:欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础 Python完全自学教程》今天给大家分享的是第23课《函数的返回值、作用域和匿名函数》。本文是一个大课程分成了下面4节小课程:Python中函数的返回值、Python函数中的局部变量、Python函数中的全局变量、Python函数中的匿名函数等内容。

2022-02-09  分类:Python学堂  浏览:1509次


站长在线Python教程:Python函数中的匿名函数详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python函数中的匿名函数详解》。本文的主要内容有:匿名函数的定义、匿名函数的表达式、匿名函数的注意点、匿名函数的优点、匿名函数的应用举例。

2022-02-01  分类:Python学堂  浏览:1624次


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

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

2022-01-10  分类:Python学堂  浏览:1738次


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

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

2022-01-06  分类:Python学堂  浏览:1644次


Python常用英语及用法

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

2022-01-02  分类:Python学堂  浏览:1852次


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

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

2021-12-29  分类:Python学堂  浏览:1812次


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

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

2021-12-26  分类:Python学堂  浏览:1598次