砝码称量
提交数: 197, 通过率: 56.35%, 平均分: 78.58
题目描述:
在实验室的架子上存放着一排重量不等的砝码( 从0位置上开始摆放),在做实验的过程中,需要使用砝码称量一定量的物品质量,例如称取10g的高锰酸钾,则可以使用一个10g或者 两个3 和7的砝码进行称取。
现给定一个物品的重量,问有多少种拿取成砝码的方案?
输入格式:
第一行一个数,表示物品的重量。
第二行给定若干个从0位置开始摆放的砝码重量,用逗号隔开。
输出格式:
依次输出各种拿取的方案。
各方案按位置小的优先输出。
如果没有拿取的方案,那么输”No“。
样例输入:
35 1,3,5,9,10,15,18,20
样例输出:
0 2 3 7 0 3 4 5 1 2 3 6 2 4 7 5 7
提示:
物品重量小于100,砝码的个数不多于20个。
def weigh( t, lis ) :
n = len( lis )
stack = [ ]
k = 0
c = 0
while stack or k < n:
while t>0 and k < n:
if t >= int(lis[k] ):
stack.append(k)
t = ________(1)_________
k += 1
if t == 0:
print( *stack, sep = ' ' ) #解包输出,空格隔开
c = 1
if ______(2)______:
k = stack.pop()
t += int( lis[ k ] )
k += 1
if ______(3)_______:
print("No")
m = int( input() )
fm = input()
shelf = ______(4)_______ #将输入的内容,转换成列表
weigh( m , shelf )
时间限制: 1000ms空间限制: 256MB