一、题目
二、示例
三、代码
def fun_24(list1, num):
if num < 1:
return False
if len(list1) == 1:
return list1[0] == num
else:
for i in range(len(list1)):
temp = list1[0:i] + list1[i+1:]
n = list1[i]
if fun_24(temp, num + n) or fun_24(temp, num - n) or fun_24(temp, num * n) or fun_24(temp, num / n):
return True
return False
while True:
try:
str1 = list(map(int, input().split()))
if fun_24(str1, 24):
print('true')
else:
print('false')
except:
break
四、算法说明
首先说一句:递归大法,永远的神!
- 递归终点,当数组
list1
只剩一个数的时候,判断是否等于num
,如果等于num
,说明可以构成 24 点,返回真; - 如果
list1
不是一个元素,调用函数本身,直到最后一个为止,然后返回真假。
再说一句:递归是真的好!
胡萝卜
2022年3月14日20:35:07
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |