鸡兔同笼,是中国古代著名典型趣题之一,大约在1500年前,《孙子算经》中就记载了这个有趣的问题。
"今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?"
也就是从笼中鸡兔的头总数和脚总数,去求出鸡兔各有几只。
即:
笼子里放有鸡和兔。请循环输入鸡和兔的头总数heads以及脚的总数feet,程序将循环输出鸡的只数chicks和兔的只数rabbits。
输入格式:
20 54
输出格式:
heads=20 feet=54
chicks=13 rabbits=7
输入样例1:
在这里给出一组输入。例如:
20 54
输出样例:
在这里给出相应的输出。例如:
heads=20 feet=54
chicks=13 rabbits=7
输入样例2:
在这里给出一组输入。例如:
12 54
输出样例:
在这里给出相应的输出。例如:
data error
输入样例3:
在这里给出一组输入。例如:
27 54
输出样例:
在这里给出相应的输出。例如:
heads=27 feet=54
chicks=27 rabbits=0
输入样例4:
在这里给出一组输入。例如:
0 54
输出样例:
在这里给出相应的输出。例如:
data error
输入样例5:
在这里给出一组输入。例如:
0 0
输出样例:
在这里给出相应的输出。例如:
data error
输入样例6:
在这里给出一组输入。脚不能为奇数:
20 55
输出样例:
在这里给出相应的输出。例如:
data error
# 从用户输入中读取两个整数,分别赋值给heads和feet
heads, feet = map(int, input().split())
# 检查输入是否有效:脚数必须是偶数,头数和脚数都不能为零
if feet % 2 != 0 or heads == 0 or feet == 0:
# 如果输入无效,则打印错误信息
print('data error')
else:
# 如果输入有效,则遍历可能的鸡的数量(从0到heads)
for chicks in range(heads + 1):
# 计算兔子的数量(总头数减去鸡的数量)
rabbits = heads - chicks
# 检查当前的鸡和兔子数量组合是否满足总头数和总脚数的条件
if chicks + rabbits == heads and chicks * 2 + rabbits * 4 == feet:
# 如果找到满足条件的组合,则打印结果并退出循环
print('heads=%d, feet=%d' % (heads, feet))
print('chicks=%d, rabbits=%d' % (chicks, rabbits))
break
# for循环的else子句:如果循环正常结束(没有执行break),则执行此代码块
else:
# 如果没有找到满足条件的组合,则打印错误信息
print('data error')