我需要编写一个程序,计算出运输一定数量乘客的大小巴士的最便宜组合,这是由用户给出的。一辆大巴载客48人,租金200美元;一辆小巴载客10人,租金95美元。我有一个解决方案,计算了许多大小巴士,但我不知道如何在成本方面的因素。这是我目前掌握的代码:
passengers = int(input("How many passengers? "))
bigBus = 0
smallBus = 0
while passengers > 0:
if passengers / 48 > 1:
passengers -= 48
bigBus += 1
else:
passengers -= 10
smallBus += 1
cost = (bigBus * 200) + (smallBus * 95)
print("Hire", bigBus, "big buses and", smallBus, "small buses.")
print("Cost =", cost)
在if语句中,将乘客除以48是问题的原因,因为在1辆大巴(例如30辆)上可以运送不到48名乘客,这比在3辆小巴上运送要便宜,但我不知道在这种情况下如何确定更便宜的成本。我想解决办法就在我头上。你知道吗
填充尽可能多的大总线
passengers // 48
。然后,对于剩余的乘客,您可以根据3辆小型巴士的成本高于1辆大型巴士的事实做出一个简单的决定(因此您不会使用超过2辆小型巴士):剩余乘客=
passengers % 48
(remaining+9) // 10
。你知道吗这可以归结为:
您的每位乘客的平均费用是
200/48
和95/10
(如果公共汽车已满)。显然,更大的巴士更经济,所以最好的解决方案是当你使用更多的大型巴士。你知道吗但是您还需要计算最后一班公共汽车的费用,因为它没有坐满人:
if 200/num_people_left > 95/num_people_left
然后为最后几个人使用较小的公共汽车。你知道吗相关问题 更多 >
编程相关推荐