需要从列表中找到4个数字,其总和将等于给定的“sum_”
def find_four(nums, sum_):
if len(nums) < 4:
return
i = 0
i2 = 1
i3 = 2
i4 = 3
while True:
num_sum = nums[i] + nums[i2] + nums[i3] + nums[i4]
if num_sum == sum_:
return [nums[i], nums[i2], nums[i3], nums[i4]]
elif i == len(nums) - 4:
return
elif i2 == len(nums) - 3:
i += 1
elif i3 == len(nums) - 2:
i2 += 1
elif i4 == len(nums) - 1:
i3 += 1
elif i4 != len(nums):
i4 += 1
我的代码适用于一些列表,如:
find_four([1,1,1,5,1,5,7],10)或
find_four([4,6,1,4,1,6,2],13).
但它不适用于一些例如’
find_four([7,5,1,4,1,6,2],11)(需要打印7,1,1,2)
怎么了 ??
标签:python,python-3-x