簡體   English   中英

如何遞歸地對列表中的每個第 n 個數字求和?

[英]How can i sum every nth number from list recursively?

我想遞歸地添加列表中的每個第 n 個數字,但不是第一個數字,所以假設我有一個列表[1, 2, 3, 4, 5, 6]我想添加每個第二個數字,這意味着我需要添加2 + 4 + 6但如果我想添加每個第三個數字,那么它應該添加3 + 6

所以現在我有這么多,我想添加每個第二個數字,這意味着我想添加246 ,但我似乎無法弄清楚為什么它不起作用,我應該怎么做?

def getsum(numbers):
    if len(piece)==0:
        return 0
    else:
        return getsum(numbers[2:]) + numbers[0]  
print getSum([1, 2, 3, 4, 5, 6])

您可以選擇第n個數字,然后當您再次調用 function 時遞歸地切掉所有內容

def get_sum(numbers, n):
    if len(numbers) < n:
        return 0
    return numbers[n-1] + get_sum(numbers[n:], n)

例如分別使用 n = 2 和 n = 3

>>> get_sum([1, 2, 3, 4, 5, 6], 2)    # 2 + 4 + 6
12
>>> get_sum([1, 2, 3, 4, 5, 6], 3)    # 3 + 6
9

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM