寻找剩余钱数最少的购买方法

book=5 #每本书的价格
pen=7 #每个笔的价格
money=99 #总钱数
outDict={'book':0,'pen':0,'money':money} #每种方案中书的个数,笔的个数,剩余的钱数
maxBook=money//book+1
maxPen=money//pen+1
for b in range(maxBook):
for p in range(maxPen):
tmpdis=money-book*b-pen*p
if tmpdis<outDict['money'] and tmpdis>=0:
outDict['money']=tmpdis
outDict['book']=b
outDict['pen']=p
print(outDict) #最优解,也就是钱剩余的最少的方案
* 首先建立一个字典,分别有本子,笔和钱及其对应的数量。
* 在全买本子(maxBook)和全买笔(maxPen)之间寻找一个最优解,让钱数的剩余最少,类似于线性规划问题寻找最优解。

0 条评论

目前还没有评论...