Skip to main content
 首页 » 编程设计

python之递归累加和

2025年05月04日14jackei

我需要编写一个程序,使用 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]