再帰のみを使用して、数値のリストを受け取り、累積合計を表示するプログラムを作成する必要があります。
例えば:
入力:
1,2,3
出力:
1,3,6
私の問題は、関数で実行するテストがいくつかあり、それらすべてに対して true を取得する必要があることですが、関数が入力を変更すると false になります。誰かがそれを修正する方法を知っていますか? (もちろん、テストを変更することはできません..)
def rec_cumsum(numbers):
''' Input: numbers - a list of numbers,
Output: a list of cumulative sums of the numbers'''
if len(numbers) == 0 : return numbers
if len(numbers) == 1 : return numbers
numbers[1] = numbers[0] + numbers[1]
return [numbers[0]] + rec_cumsum(numbers[1:])
### Testing code
def test_rec_cumsum(numbers):
return rec_cumsum(numbers) == [sum(numbers[:i]) for i in range(1,len(numbers)+1)]
import random
print test_rec_cumsum([1,2,3])
print test_rec_cumsum(random.sample(range(100),30))
print test_rec_cumsum([])