我正在开发一个程序,用户输入旅行的人数,程序确定要使用的每种车辆类型所需的数量。说: 车 - 4名乘客 小型货车 - 7名乘客 小巴士 - 15名乘客 大巴士 - 60名乘客
这是我到目前为止所做的:
car_capacity = int(4)
minivan_capacity = int(7)
short_bus_capacity = int(15)
full_size_bus_capacity = int(60)
cars_needed = 0
minivan_needed = 0
short_buses_needed = 0
full_size_buses_needed = 0
passengers = int(input("How many people will be going?\n"))
if passengers < 1:
print("Nobody is going, therefore no vehicles will be needed.")
while passengers > 0:
print(passengers % 60)
基本上我试图找出所需的车辆最少。 Ex(输入= 63.输出1大总线,1小)
请不要以为我在寻求答案,我只是需要一些线索或暗示要研究什么或如何处理这个问题
答案 0 :(得分:1)
passengers = int(input("How many people will be going?\n"))
if passengers < 1:
print("Nobody is going, therefore no vehicles will be needed.")
# make it a dictionary, so we can loop through
vehicles = {
4: 'car',
7: 'minivan',
15: 'short_bus',
60: 'full_size_bus'
}
vehicles_needed = {}
# a helper to check one type of vehicle
def check_vehicle(passengers, capacity, name):
if passengers >= capacity:
amount = passengers / capacity
# substract the passengers
passengers -= (amount * capacity)
return {name: amount}, passengers
return {}, passengers
# loop through all capacities from the biggest one
for k, v in sorted(vehicles.items(), reverse=True):
# if any vehicle needed, it will be put in the vehicles_needed
vehicle_update, passengers = check_vehicle(passengers, k, v)
vehicles_needed.update(vehicle_update)
# if there is a leftover, add one car
if passengers > 0:
vehicles_needed.update({'car': vehicles_needed.get('car', 0) + 1})
print vehicles_needed # 67 -> {'minivan': 1, 'full_size_bus': 1}