HJ93 数组分组
修改1:
修改2:
修改3:(正确答案)
修改4:优化修改3。在修改3代码实现,尽管找到了一组可行的true,但仍然会执行后面的递归。
可进行优化找到一组true后不再进行后面的递归尝试。优化实现方式是,找到一组true后,之后其他递归全部执行返回。
1 #no=input() 2 a=list(map(int,input().split())) 3 team1,team2,team3=[],[],[] 4 for i in a: 5 if i%5==0: 6 team1.append(i) 7 elif i%3==0: 8 team2.append(i) 9 else: 10 team3.append(i) 11 def recursion(team1,team2,team3): 12 if team3==[]:#基本结束条件 13 if sum(team1)==sum(team2): 14 return True 15 else: 16 return False 17 if recursion(team1+team3[:1],team2,team3[1:]):#第一个递归方向 18 return True 19 if recursion(team1,team2+team3[:1],team3[1:]):#第二个递归方向 20 return True 21 if recursion(team1,team2,team3): 22 tem="true" 23 else: 24 tem="false" 25 26 print(tem)