题目:
设有 1g,2g,3g,5g,10g,20g 的砝码各若干枚(其总重量 ),要求计算用这些砝码能称出 的不同重量的个数,但不包括一个砝码也不用的情况。
解题思路:
(这道题和一道往届python组砝码题(有空会把这道题也发出来)类似,我用的相同思路,若有更好解法欢迎提出)
首先假如我们有两个砝码,分别是1g,2g。那么称量结果就有1g,2g,3g。这时候如果再来一个2g砝码,我们的做法是在原来[1,2,3]的结果上分别加上2g再填入结果列表。结果为[1,2,3,3,4,5,2],这个最后的2是这个2g砝码单独称重,也要加上。然后我们需要用set()函数把结果列表去重为[1,2,3,4,5]。
通过上面我们不难发现,我们就是先把n个砝码的结果计算出来,再把第n+1个砝码分别加之前的结果(包括该砝码独自称重的结果)append在结果列表之后,然后去除重复部分就好。接下来是实现代码。
代码部分:
num = list(map(