题目
小明有一百元,他想买一百本书,英语书5元一本,数学书3元一本,语文书0.5元一本,请问他有多少种买法?
请编程解决这个问题,可以使用任何编程语言,包括伪语言
分析
小明有100元,三本书的价格分别是5元,3元,0.5元,那么最多能买到的英语书为20本,数学书为33本,语文书为200本。题目要求用100元买100本书,钱不一定花完,只要买够100本书就行
因此,可以通过一个三重for循环来实现,i, j, e分别代表购买英语、数学、语文书的数量,循环条件分别是 i <= 20, j <= 33, e <= 200,那么只要满足 i + j + e = 100, 5 * i + 3 * j + 0.5 * e <= 100即可
最后统计所有的组合就是买法的数量
代码实现
n = 0
#最大买20本英语书,i表示买中文书的数量
for i in range(21):
#最大买33本数学书,j表示买数学书的数量
for j in range(34):
#最大买200本语文书,e表示语文书的数量
for e in range(201):
if 5 * i + 3 * j + 0.5 * e <= 100 and i + j + e == 100:
n += 1
print(n)