选举情况中常有平局情况,现设计一个方法 number_ties(blocks, for_votes=0, against_votes=0)返回平局的情况个数。其中:
参数block是一个无序列表,里面的元素代表着票数,for_votes表示支持数,against_votes表示反对数。
注意:该方法需要用到递归
例子:
number_ties([1, 2, 3]) 返回2
因为 支持1+2 反对 3 是一种情况
支持3 反对1+2是一种情况
所以有两种情况。返回2
选举情况中常有平局情况,现设计一个方法 number_ties(blocks, for_votes=0, against_votes=0)返回平局的情况个数。其中:
参数block是一个无序列表,里面的元素代表着票数,for_votes表示支持数,against_votes表示反对数。
注意:该方法需要用到递归
例子:
number_ties([1, 2, 3]) 返回2
因为 支持1+2 反对 3 是一种情况
支持3 反对1+2是一种情况
所以有两种情况。返回2
用dfs
result = 0
def dfs(values, a, b, times):
global result
if times == len(values):
if a == b:
result += 1
else:
times += 1
dfs(values, a+values[times-1], b, times)
dfs(values, a, b+values[times-1], times)
array = [int(i) for i in input().split(" ")]
dfs(array, 0, 0, 0)
print(result)