以下是一个使用递归函数的例子,以计算给定数组中所有不同和的总和:
def find_unique_sums(nums):
unique_sums = set() # 用集合存储不同和,确保没有重复值
def helper(curr_sum, idx):
if idx == len(nums): # 遍历完所有元素
unique_sums.add(curr_sum) # 将当前和添加到集合中
return
# 两种选择:添加当前元素或不添加
helper(curr_sum + nums[idx], idx + 1) # 添加当前元素
helper(curr_sum, idx + 1) # 不添加当前元素
helper(0, 0) # 从第一个元素开始递归求解
return sum(unique_sums) # 返回不同和的总和
# 示例用法
nums = [1, 2, 3]
result = find_unique_sums(nums)
print(result) # 输出 11
在这个例子中,我们使用一个递归函数helper
来计算所有不同和。curr_sum
参数表示当前的和,idx
参数表示当前的索引位置。我们从第一个元素开始递归计算,每次递归时,可以选择添加当前元素或不添加当前元素。当递归到最后一个元素时,将当前和添加到集合unique_sums
中。最后,我们返回集合中所有元素的总和。
上一篇:不同函数中状态变量值不同
下一篇:不同和多重的日志输出