华为机试HJ72百钱买百鸡问题
题目:
想法一:
三重循环,遍历所有的情况得到百钱百鸡的结果
input_number = input()
for i in range(21):
for j in range(34):
for k in range(101):
if 5*i + 3*j + k/3 == 100 and i + j + k == 100:
print(i, j, k)
想法二:
数学推导,通过百钱百鸡的两个方程 a + b + c = 100 a + b + c = 100 a+b+c=100和 5 ∗ i + 3 ∗ j + k / 3 = = 100 5*i + 3*j + k/3 == 100 5∗i+3∗j+k/3==100得到公式 b = 25 − 7 a / 4 b = 25-7a/4 b=25−7a/4,由此可知a是四的倍数,又要保证b不为负数,a只能取到0,1,2,3。利用数学公式获得最终的返回结果
input_number = input()
for i in range(4):
a = 4 * i
b = 25 - 7 * i
c = 100 - a - b
print(a, b, c)