24点游戏算法

本文介绍了24点游戏的两种算法实现。第一种通过穷举法列出所有可能的四数运算组合,包括括号的可能性;第二种算法通过两元运算递归地组合四个数字,避免了处理括号的问题。每种算法都提供了Python代码示例。
摘要由CSDN通过智能技术生成
  • 题目描述:

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

  • 输入描述:

输入4个int整数(数字允许重复,但每个数字仅允许使用一次,无异常数字)

  • 输出描述:

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

  • 示例1、

输入:

7 2 1 10

输出:

true

当第一次读到题目后自己的解法如下:

import itertools
while True:
    try:
        nums, flag = input().split(), False
        for i in itertools.product('+-*/', repeat=3):
            if round(eval(nums[0] + i[0] + nums[1] + i[1] + nums[2] + i[2] + nums[3])) == 24:
                flag = True
                break
        if flag:
            print('true')
        else:
            print('false')
    except:
        break

分析,此种解法只考虑到不存在括号且数据顺序不变的情况,考虑的情况太过简单&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值