聚的一些OD机试题(迭代七)

## 1.题目描述

给出4个1-10的数字,通过加减乘除运算,得到数字为24就算胜利,除法指实数除法运算,运算符仅允许出现在两个数字之间,本题对数字选取顺序无要求,但每个数字仅允许使用一次,且需考虑括号运算

此题允许数字重复,如3 3 4 4为合法输入,此输入一共有两个3,但是每个数字只允许使用一次,则运算过程中两个3都被选取并进行对应的计算操作。

示例1:

```
输入:7 2 1 10

输出:true
```

## 2. Solution

```python
def helper(arr, item):
    if len(arr) == 1:
        return arr[0] == item
    else:
        for i in range(len(arr)):
            m = arr[:i] + arr[i+1:]
            n = arr[i]
            if helper(m, item+n) or helper(m, item-n) or helper(m, item *n) or helper(m, item/n):
                return True
        return False 
    
    
while True:
    try:
        if helper(list(map(int, input().split())), 24):
            print('true')
        else:
            print('false')
    except:
        break
```
全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务