题解 | #百钱买百鸡问题# python解法
百钱买百鸡问题
http://www.nowcoder.com/practice/74c493f094304ea2bda37d0dc40dc85b
根据题意我们可以知道,输入的数据是没有意义的,我们只需要读取一下就可以,和本题毫无关系。
针对这个数学问题,我们可以采用暴力解法,双重for循环,在遍历中,我们可以缩小遍历的范围,减少无效遍历,我们可以从题意中得知公鸡每只5元,即使100元全部购买公鸡,那么公鸡最多购买20只;对于母鸡每只3元,全部购买最多买33只。因此我们可以推算出这两次for循环的大致范围;对于小鸡是3只1元,因此,小鸡的数量只能是3的倍数。最后,通过两次for循环即可以得出最后的结果。
m = input()
for i in range(21):
for j in range(34):
z = 100-i-j
if z % 3 == 0 and 5*i+3*j+int((100-i-j)/3) == 100:
print(i,j,z)