用python解决数学题——100块买100只鸡
这道数学题目是这样的:市场上有公鸡、母鸡和小鸡,它们的价格分别是1块、3块和0.5块一只。问题是我有100块钱,想买100只鸡,可以有多少种买法?
解题的思路就是我们从题目中了解到,如果100块钱全买公鸡,那么最多可以买100只;如果买母鸡,那么最多可以买33只;如果买小鸡,那么最多可以买100只(因为题目只要求买100只)。
所以我们决定假设可以买x只公鸡、y只母鸡、z只小鸡,然后x的最大值是100,y的最大值是33,z的最大值是100,我们对这3个假设值进行遍历求解。
我们先用for循环来实现它:
# for循环 count = 0 for x in range(0, 101): for y in range(0, 34): for z in range(0, 101): if x + y + z == 100 and x + 3 * y + 0.5 * z == 100: count += 1 print("买法" + str(count) + ":公鸡" + str(x) + "只," + "母鸡" + str(y) + "只," + "小鸡" + str(z) + "只。")
执行结果如下:

我们再用while循环来实现一次:
# while循环
count = 0
x = 0
while x <= 100:
y = 0
while y <= 33:
z = 0
while z <= 100:
if x + y + z == 100 and x + 3 * y + 0.5 * z == 100:
count += 1
print("买法" + str(count) + ":公鸡" + str(x) + "只," + "母鸡" + str(y) + "只," + "小鸡" + str(z) + "只。")
z += 1
y += 1
x += 1
执行结果如下:

由此可得,一共有21种买法。