私は目標値を作るために追加することができる数字の組み合わせを見つけ、次の再帰的なプログラムを書いた:私は追加する)(arr.append使用しておりますので再帰関数にリストに追加する
arr = [1, 2, 2, 3, 5]
target = 8
def comb_sum(arr, current_index, target, result, ans):
if target == 0:
print result
ans.append(result)
return 0
if target < 0:
return 1
if current_index == len(arr):
return 1
result.append(arr[current_index])
comb_sum(arr, current_index+1, target - arr[current_index], result, ans)
result.pop()
comb_sum(arr, current_index+1, target, result, ans)
return ans
print comb_sum(arr, 0, target, [], [])
をresult
、私は正しい出力を期待していました。
プログラムが正しくても、ans
にリストresult
を追加できません。
どういうところが間違っていますか?
私は期待しています。この出力: [[1, 2, 2, 3], [1, 2, 5], [1, 2, 5], [3, 5]]
しかし、その代わりに、私はこの出力を得る: [[], [], [], []]
期待する出力は何ですか? –
質問を更新しました – yask
@yaskあなたはpython 2.7を使用していますか? – wind85