Python:如何找到最简单的整除形式

2024-09-28 22:38:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个程序,在这个程序中,用户输入出行的人数,程序确定要使用的每种车型的所需数量。他说: 车厢-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条小母线)

请不要以为我在问答案,我只需要一个线索或提示什么研究或如何处理这个问题


Tags: 程序sizebewillfullintshortcapacity
1条回答
网友
1楼 · 发布于 2024-09-28 22:38:59
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}

相关问题 更多 >