1. 程式人生 > >Python “最短”挑戰(12.17)

Python “最短”挑戰(12.17)

Python “最短”挑戰(12.17)

Description

給定一個數k和一個有n個元素的陣列li,請你判斷,是否可以從這組數中選擇若干個數,使得其和為k。如果可以,輸出’Yes’,否則輸出’No’。
例如,當k=12,n=4,li=[3,7,1,2]時,輸出’Yes’,因為3+7+2=12。

Input

三行,第一行n,第二行k,第三行li

Output

‘Yes’或’No’
其餘要求同首題

參考程式碼

n,k,li=int(
input()),int(input()),list(map(int,input().split(' '))) def main(i,s):return s==k if i==n else True if main(i+1,s) or main(i+1,s+li[i]) else False print('Yes' if main(0,0) else 'No') ''' def main(li,n,k): li=sorted(li,reverse=True) for i in range(n): for j in range(i,n+1): if sum(li[i:j])==k: print('Yes') return print('No') main(li,n,k) '''