#Include <Array.au3>
Const $T=44
Global $arr[$T]=[59,68,78,80,86,89,90,96,98,106,108,116,118,126,128,129,135,136,139,146,148,149,156,158,166,168,169,176,178,186,188,195,196,198,218,219,228,236,238,239,249 ,259,266,270]
Global $i[$T]
Global $findNum=0
Global $find[1000]
Global $targetNum=883
Local $j,$k
For $j=0 To 2^$T-1
$sum=0
For $k=0 To $T-1
If BitAND($j,2^$k) Then $sum+=$arr[$k]
If $sum >883 Then ExitLoop
Next
If $sum=$targetNum Then
$findNum+=1
$find[$findNum]=$j
EndIf
;跑了半天没跑完,加了个限制,少找几个,你可以尝试把下面这句去掉让它运行完..
If $findNum>5 Then ExitLoop
Next
_ArrayDisplay($find)
displayTrueNum($find[1])
Func displayTrueNum($num)
Local $str=""
For $k=0 To $T-1
If BitAND($num,2^$k) Then $str = $str& $arr[$k] & ";"
Next
MsgBox(0,0,$str)
EndFunc