假设,我们提供了一个包含整数的数组“input_list”。给我们的问题是检查给定的数组是否可以分成两半,其中两半之和的差等于一个数 n。数字 n 将预先提供。
因此,如果输入类似于 input_list= [9,2,5,6], n = 0,那么输出将是“可能的”。
为了解决这个问题,我们将按照以下步骤操作 -
list_total := input_list 的值的总和
如果 (list_total - n) mod 2 与 1 相同,则
返回“不可能”
val := (list_total - n) / 2
温度总和:= 0;
对于范围 0 到 input_list 大小的 i,请执行
返回“可能”
temp_sum := temp_sum + input_list[i]
如果 temp_sum 与 val 相同,则
返回“不可能”
让我们看看以下实现以获得更好的理解 -
def solve(input_list,n): list_total = sum(input_list) if (list_total - n) % 2 == 1: return "Not Possible" val = (list_total - n) / 2 temp_sum = 0; for i in range (0,len(input_list)): temp_sum += input_list[i] if (temp_sum == val): return "Possible" return "Not Possible" input_list= [9,2,5,6] n = 0 print(solve(input_list, n))
[9,2,5,6], 0输出结果
Possible