3
我需要幫助創建一個遞歸函數,它需要一個數組的列表/數組並返回一個元組或類似的格式(a,b)
其中a
是偶數的總和和b
是總和奇怪的... 例如:如何使用遞歸求和一個數組的偶數和奇數
input: [1, 2, 3, 4, 5]
return: (6, 9)
我需要幫助創建一個遞歸函數,它需要一個數組的列表/數組並返回一個元組或類似的格式(a,b)
其中a
是偶數的總和和b
是總和奇怪的... 例如:如何使用遞歸求和一個數組的偶數和奇數
input: [1, 2, 3, 4, 5]
return: (6, 9)
在Python中,你可以試試這個:
def sum_even_odd(lst):
if not lst: # empty list, we're done
return (0, 0) # counters are zero for empty list
elif lst[0] % 2 == 0: # current value is even
x, y = sum_even_odd(lst[1:]) # recursive call
return (lst[0] + x, y) # increment even counter
else: # current value is odd
x, y = sum_even_odd(lst[1:]) # recursive call
return (x, lst[0] + y) # increment odd counter
注意的基本情況如何返回(0, 0)
,並從該點上,每個successiv遞歸調用根據列表中的當前值增加元組中的正確值,如果它是偶數或奇數。它按預期工作:
sum_even_odd([1, 2, 3, 4, 5])
=> (6, 9)
Oscar ty vm這讓我瘋狂:-) – Joneleth
用什麼語言? –
最好是python,但任何語言都可以:-) – Joneleth