我需要编写一个程序,使用 def 从数字列表中计算累积和,但只能使用递归。 我做到了,但现在我需要在不使用方法 sum 的情况下编写相同的程序,但到目前为止没有成功。 有什么想法吗?
我的代码:
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
return rec_cumsum(numbers[:-1])+ [sum(numbers)]
输入:
1 [1,2,3]
2 [2, 2, 2, 3]
输出:
1 [1,3,6]
2 [2, 4, 6, 9]
我的代码没有sum:
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
my_list=[]
rec_cumsum(my_list + numbers)
my_list[0]=numbers[0]
rec_cumsum(my_list)
temp_sum=my_list[0]+numbers[-1]
my_list[0]=temp_sum
return my_list
请您参考如下方法:
我会在不添加额外参数的情况下提出这样的建议:
[更新]
def rec(n):
if len(n) < 2: return n
n[1] = n[0] + n[1]
return [n[0]] + rec(n[1:])
print rec([1,2,3,4])
[1, 3, 6, 10]
