已知:鸡和兔总共有 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)


