资讯中心 Info
当前位置:酷叮猫 > 资讯中心 >
Python 鸡兔同笼
发布日期:2018-07-18 阅读次数:

 

已知:鸡和兔总共有 n 只, 腿加起来总共 m 条 问:几只鸡,几只兔? 要求程序输入n,m. 输出问题的答案,如果无结果就输出无解.

例如: 对于14只鸡兔,32条腿,结果是什么? 对于18只鸡兔,56条腿,结果是什么? 对于12只鸡兔,48条腿,结果是什么?

程序的运行结果如下: 

看到这道题的时候,我们或许会想到方程,什么方程呢?二元一次方程, 这是一道初中水平就谁都可以解的问题.

假设,鸡有a只,兔有b只,那么我们一定会写出来以下的2个公式.

a+b=n
2a+4b=m

经过公式的变换,我们会得到2个新公式

a=(4n-m)/2
b=n-a

我们推断, a,b都应该是大于0的整数.

程序代码如下:

def app(n,m):
    a = (4*n - m)//2 # 注意 a 有可能为0
    if a!=0 and (4*n-m)%(a*2)==0:
       b = n -a 
       if a<0 or b<0:
           print("{}只动物{}条腿的情况无解".format(n,m))
       else:
           print("鸡有{}只,兔有{}只".format(a,b))
    else:
       print("{}只动物{}条腿的情况无解".format(n,m))
 
app(14,32)
app(18,56)
app(12,48)

课程体系
通知公告