对递归不太熟 执着于自己的方法 写了大半年 终于写出来了 哭了
def add(sm5,sm3,temp): if len(temp)==0: if sm5==sm3: return True else: return False else: return add(sm5+temp[0],sm3,temp[1:]) or add(sm5,sm3+temp[0],temp[1:]) while True: try: n=int(input()) nums=list(map(int,input().split())) num3=[] num5=[] temp=[] for i in nums: if i%5==0: num5.append(i) elif i%3==0: num3.append(i) else: temp.append(i) sm5,sm3=sum(num5),sum(num3) a=add(sm5,sm3,temp) if a: print('true') else: print('false') except: break
错误写法:
def add(sm5,sm3,temp): if len(temp)==0: if sm5==sm3: return True else: return False else: a=temp.pop(0) return add(sm5+a,sm3,temp) or add(sm5,sm3+a,temp)