天天看點

數組中任選值相加得到目标值

#File Name : 任意數組中的數加出目标值.py

#給定一個數組,和一個數aim ,任意選擇arr中的數字
# 不重複選擇,相加 若可以等于aim 則傳回true

def process(arr,i,sum,aim):
    # arr 數組
    #  i 目前位置 數組的數的位置
    #  sum 目前的和  要之前的數和不要之前的數的和是不一樣的
    # aim 固定得數
    if i==len(arr):
        return sum==aim
    return process(arr,i+1,sum,aim) or process(arr,i+1,sum+arr[i],aim)

arr = [3,2,7,13]
aim = 9

print(process(arr,0,0,aim))