# 4
# 1 5 -5 1
"""
先将5和3的倍数分到两个组,计算他们差
然后将剩余的元素按照上面得到的差进行均分
这样就把问题转换为了求定和的问题,用递归即可
"""
while True:
try:
n = int(input())
array = list(map(int, input().split()))
sum_3 = 0
sum_5 = 0
remain = []
for number in array:
if number % 3 == 0 and number % 5 !=0:
sum_3 += number
continue
if number % 5 == 0:
sum_5 += number
continue
remain.append(number)
maxer = max(sum_3, sum_5)
miner = min(sum_3, sum_5)
mid = (sum(remain) - (maxer-miner))/2
def helper(mid, index, array, sumer):
if index == len(array):
return mid == sumer
if mid == sumer:
return True
return helper(mid, index+1, array, sumer+array[index]) or helper(mid, index+1, array, sumer)
result = helper(mid, 0, remain, 0)
if result:
print("true")
else:
print("false")
except:
break
HW.JAVA题目0-1级
猜你喜欢
转载自blog.csdn.net/dpengwang/article/details/93192357
今日推荐
周排行