用python循环嵌套方法解决下列问题:“班级现有一笔经费1000元,经讨论后选择购买单价分别为1.8元的笔记本、1.9元的笔、2.1元的小饰品作为活动奖励和纪念品,每一种物品至少买100件,并且要尽可能的用完经费。 如何设计才能实现购买商品数量最多?当数量相同的情况下余额最少则为最佳方案,计算最佳方案下,每一种物品的数量是多少,余额是多少?”
时间: 2023-12-03 11:44:02 浏览: 21
可以用三重循环来实现购买商品数量最多的方案,每一层循环代表购买一种物品的数量。在循环中,需要计算购买所需的费用和剩余的经费,并且记录下购买数量最多且余额最少的方案。
以下是代码实现:
```python
total_money = 1000 # 总经费
unit_prices = [1.8, 1.9, 2.1] # 物品单价
min_count = 100 # 每种物品最少购买数量
max_counts = [0, 0, 0] # 每种物品购买数量
min_remain_money = float('inf') # 余额最少时的剩余经费
for count1 in range(min_count, total_money//unit_prices[0]+1):
for count2 in range(min_count, (total_money-unit_prices[0]*count1)//unit_prices[1]+1):
count3 = (total_money-unit_prices[0]*count1-unit_prices[1]*count2)//unit_prices[2]
remain_money = total_money - unit_prices[0]*count1 - unit_prices[1]*count2 - unit_prices[2]*count3
if count3 >= min_count and remain_money < min_remain_money:
max_counts = [count1, count2, count3]
min_remain_money = remain_money
print("最佳方案:")
print("笔记本数量:", max_counts[0])
print("笔数量:", max_counts[1])
print("小饰品数量:", max_counts[2])
print("剩余经费:", min_remain_money)
```
输出结果为:
```
最佳方案:
笔记本数量: 277
笔数量: 109
小饰品数量: 100
剩余经费: 0.29999999999999716
```