2017-01-05 4 views
0

私は初心者であり、これを行う方法はわかりません。再帰を使ってリストのすべての要素を集計する

私はリストL=[1,2,3,100]を持っていると、再帰を使用して、私は[0,1,2,3,4,6,...,106]すべての可能性がなどだけL[1]L[2]のようなL、またはL[0]L[1]L[0]L[1]、およびL[3]、からこの要素を総括するために取得する必要... 私はこれを試みますが、再帰ではありませんか?

def rec(L): 
    if not ls: 
     return 0 
    return ls[0] + listSum(ls[1:]) 
+0

これは宿題のようですが、再帰が何であるかを理解してください。あなたが望む結果が得られない場合は、あなた自身のコードを理解するだけでなく、ここにも投稿する必要があります。これは、人々があなたの知識レベルへの回答を提供するのに役立ちます。がんばろう! – Llopis

答えて

0

あなたの識別子が一致しません。その最初の修正:最初の要素を持つとせずに一つずつ:各再帰レベルで

def listSum(ls): 
    if not ls: 
     return 0 
    return ls[0] + listSum(ls[1:]) 

第二に、あなたは2つの拡張製品を行う必要があります。何かのように...

other = listSum(ls[1:]) 
result = [] 
for partial_sum in other: 
    # append both partial_sum and partial_sum + ls[0] to result 

return result 

あなたはそこから取ることができますか? そうでない場合は、「ターゲットへの再帰和」の質問についてスタックオーバーフローを検索してください。 非常にの多くのソリューションがこの問題に必要なものに近いでしょう。

関連する問題