24点游戏算法

  • Post author:
  • Post category:其他


题目描述

问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利

输入:

4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字]

输出:

true or false

输入描述:

输入4个int整数

输出描述:

返回能否得到24点,能输出true,不能输出false

输入:

7 2 1 10

输出:

true

代码如下:

def fun(res,num):
    if len(num) == 1:
        if num[0] == res:
            return True
        else:
            return False
    for i in range(len(num)):
        a = num[i]
        b=num[:]
        b.pop(i)
        if (fun(res-a,b)) or fun(res*a,b) or fun(res/a,b) or fun(res+a,b):
            return True
 
while True:
    try:
        num=[int(i) for i in input().split()]
        for i in range(4):
            num[i] = float(num[i])
        if fun(24.0,num)==True:
            print('true')
        else:
            print('false')
    except:
        break



版权声明:本文为qq_37295506原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。