习题3
找零钱给定硬币种类的个数,不同种类硬币的面额和一个总金额。请计算可以凑成总金额所需的最少的硬币个数。
样例1输入:3
1 2 5
11
样例1输出:3
样例2输入:2
1 3
2
样例2输出:2
样例3输入:5
1 5 18 45 78
233
样例3输出:7
样例4输入:10
3 0 10 24 98 37 12 38 76 32
777
样例4输出:9
def solution(s:int,lst:list[int],s1:int):
lst.sort()
m=lst.count(0)
if m>0:
for j in range(m):
lst.remove(0)
x=len(lst)-1
i=0
if s1 in lst:
return 1
else:
while x>=0:
if s1/lst[x]>=1:
m=int(s1/lst[x])
i+=m
s1=s1-m*lst[x]
x-=1
else:
x-=1
return i
print(solution(3,[1,2,5],11))
望采纳