您现在的位置是:首页 > 技术教程 正文

python编程:实现计算鸡兔同笼问题

admin 阅读: 2024-03-23
后台-插件-广告管理-内容页头部广告(手机)

目录

一、编程题目

二、输入输出样例

三、程序实现

四、测试


一、编程题目

        大约在1500年前,《孙子算经》中就记载了这个有趣的问题:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”意思是,有若干只鸡和兔子关在同一个笼子里,从上面数有20个头,从下面数有56只脚,问:笼子中有多少只鸡?多少只兔子?

       编程实现:输入脑袋的数量和脚的数量,输出鸡和兔子的数量,如果没有解,则输出无解。


二、输入输出样例

    输入:20 56

    输出:鸡有12只,兔有8只

    输入:30 63

    输出:无解


三、程序实现

        1、定义函数chicken_and_rabbit用于计算鸡和兔子的数量 

        方法一:    假设全是鸡,计算多出了几只脚,1只兔子比1只鸡多2只脚,所以多出来的是兔子的脚,从而知道兔子的数量,再用头的数量减去兔子,得到鸡的数量。 

  1. def chicken_and_rabbit(head,foot):
  2. #计算全是鸡还多余几只脚
  3. foot_remain = foot - head*2
  4. if foot_remain%2==0:#一只兔子多2只脚,计算有多少只兔子
  5. rabbit = int(foot_remain/2)
  6. chicken = head-rabbit
  7. print("鸡有", chicken, "只;兔子有", rabbit, "只")
  8. else:
  9. print("无解")

        方法二:使用循环求解,脚的数量=鸡的数量x2+兔子的数量x4,头的数量=鸡+兔,两个参数,两个方程,可以求解。        

  1. def chicken_and_rabbit(head, foot):
  2. answer = False
  3. for x in range(head + 1):
  4. for y in range(head + 1):
  5. if x + y == head and 2 * x + 4 * y == foot:
  6. answer = True
  7. break
  8. if answer:
  9. break
  10. if answer:
  11. print("鸡有", x, "只;兔子有", y, "只")
  12. else:
  13. print("无解")

    2、input获取输入的头的数量和脚的数量,然后调用求解的方法

  1. head,foot = input().split()
  2. chicken_and_rabbit(int(head),int(foot))

四、测试

        

         

         

        

         

 

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索