一、题目

二、输入输出

三、示例

四、要求

五、解题思路

六、参考代码 

# -*- coding: utf-8 -*-
'''
@File    :   2023-B-代表团坐车.py
@Time    :   2023/12/23 21:09:04
@Author  :   mgc 
@Version :   1.0
@Desc    :   None
'''
 
def count_reception_plans(people, capacity):
    # 解析代表团人数列表
    people_list = [int(x) for x in people.split(",")]
    
    # 递归函数
    def helper(people_list, capacity):
        # 终止条件:汽车载客量为0,返回1表示找到一种可行方案
        if capacity == 0:
            return 1
        
        # 方案数量
        count = 0
        
        # 遍历代表团
        for i in range(len(people_list)):
            # 当前代表团人数
            curr_people = people_list[i]
            
            # 当前代表团人数小于等于汽车载客量时,进行递归处理
            if curr_people <= capacity:
                # 选择当前代表团上车,递归处理剩余的代表团
                count += helper(people_list[i+1:], capacity - curr_people)
        
        return count
    
    # 调用递归函数,得到方案数量
    plan_count = helper(people_list, capacity)
    
    return plan_count
 
people = input()  # 代表团人数列表
capacity = int(input())  # 汽车载客量
result = count_reception_plans(people, capacity)
print(result)
12-23 23:30