因此,如果给定一个整数列表和一个称为x的数字,该如何递归地返回列表中每个第x个数字的总和。
在此任务中,“索引编制”从1开始,因此如果x = 2
和nums = [2,3,4,-9]
,则输出应为-6
(3 + -9)。
X也可以是负数,在这种情况下,索引从列表的末尾开始,请参见下面的示例。
如果为x = 0
,则总和也应为0
。
例如:
print(x_sum_recursion([],3)) # 0
print(x_sum_recursion([2,5,6,15,5],3)) # 11
print(x_sum_recursion([0,-5,-9,3],1)) # 0
print(x_sum_recursion([43,90,115,500],-2)) # 158
print(x_sum_recursion([1,2],-9)) # 0
print(x_sum_recursion([2,6],5)) # 0
print(x_sum_recursion([6,2,9,8,4],3)) # 15
我已经连续5个小时尝试执行此功能!!!
想看看别人如何解决这个问题。
这是我所想出的最好的结果。
def x_sum_rec_Four(nums: list,x: int) -> int:
if len(nums) == 0:
return 0
elif len(nums) < x:
return 0
elif x > 0:
i = x - 1
return nums[i] + x_sum_rec_Four(nums[i + x:],x)
elif x < 0:
return x_sum_rec_Four(nums[::-1],abs(x))
我的递归问题是完成返回应该是:
if len(nums) < x:
return nums[0]
但这会在([2,5)) -->> 2
应该为0时传递类似的信息。