24点 - DFS

本文介绍了如何使用深度优先搜索算法解决24点游戏问题。给定四个正整数,目标是通过四则运算使结果为24。算法思路包括全排列组合和四则运算穷举,利用DFS来尝试所有可能的运算顺序,找到正确答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Time Limit:1000ms          Memory Limit: 65535KB

在Jason生活的星球上,算术学期末总是考同样的题目:抽四张扑克牌,在1秒内通过四则运算让其结果为24。

但是Jason的算术太拙了,总是没办法在1秒内得到正确答案。期末考试就快要到了,但正直的Jason不想靠命运力神抽4张6来通过考试。

你能为Jason设计一个24点的算法,好让他不挂科吗?

输入:

给定一个提示输入行,让监考老师输入四个正整数 (均小于INT_MAX)

输出:

如果能够算出24,打印一个由输入数字组成的结果为24的四则运算算式,用括号表明优先级

否则输出一个"You WIN!"

例子:

Input

请输入四张牌的点数:

6 6 6 6

Output

((6+6)+6)+6=24


...

(以上纯属瞎说)

四个数字的所有排列组合有4! == 24种,三个运算符的运算次序有3! == 6种(实际上只有5种,因为1->3->2 和3->1->2 得到的结果是一样的),这个规模完全可以用穷举来做

可以考虑用穷举+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值