龙空技术网

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

站长世界 161

前言:

如今看官们对“鸡兔同笼c语言if语句”大体比较看重,朋友们都想要知道一些“鸡兔同笼c语言if语句”的相关内容。那么小编也在网上收集了一些对于“鸡兔同笼c语言if语句””的相关知识,希望大家能喜欢,咱们快快来了解一下吧!

欢迎你来到站长在线的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 - jiif (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 = 0tu = 0while 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循环语句遍历法。已经讲解完毕了,有问题可以给我留言哦!

标签: #鸡兔同笼c语言if语句