简单的方法,不太费脑
百钱买百鸡问题
http://www.nowcoder.com/questionTerminal/74c493f094304ea2bda37d0dc40dc85b
while True:
try:
re = []
if input().isdigit():
max_x = int(100//5)
max_y = int(100//3)
max_z = int(100//(1/3))
for x in range(0,max_x+1):
for y in range(0,max_y+1):
for z in range(0,max_z+1):
if x+y+z == 100 and (5x+3y+(1/3)*z)==100:
re.append('{} {} {}'.format(x,y,z))
for i in re:
print(i)
except:
break
先考虑 单一种类的取值范围,然后最优解一定在每个取值范围之中