某小红薯在小红书的活动中抽奖中了一定价值的薯券,这些薯券可以用来购买一批商品,求有多少种购买组合。其中一件商品可以买多件。
输 入:薯券金额、商品分别价格
输出 :组合数
输入描述:
输入薯券金额、商品分别价格
例如:10 [2,3,5]
10与[2,3,5]中间有空格
输出描述:
输出4,则结果集可以为:2,2,2,2,2;5,5;2,3,5;2,2,3,3共有4种组合
输入例子1:
10 [2,3,5]
输出例子1:
4
示例代码:
def func(x, goods):
f = [1] + [0] * x
for good in goods:
for i in range(good, x + 1):
f[i] += f[i - good]
return f[i]
data = input()
x, goods = data.split(' ', 1)
x = eval(x)
goods = eval(goods)
result = func(x, goods)
print(result)
运行效果:
此题和硬币问题是一样的!https://blog.csdn.net/weixin_44799217/article/details/118943624