一、题目描述
给出4个1-10的数字,通过加减乘除运算,得到数字为24就算胜利,除法指实数除法运算,运算符仅允许出现在两个数字之间,本题对数字选取顺序无要求,但每个数字仅允许使用一次,且需考虑括号运算
此题允许数字重复,如3 3 4 4为合法输入,此输入一共有两个3,但是每个数字只允许使用一次,则运算过程中两个3都被选取并进行对应的计算操作。
二、输入描述
读入4个[1,10]的整数,数字允许重复,测试用例保证无异常数字。
三、输出描述
对于每组案例,输出一行表示能否得到24点,能输出true,不能输出false。
四、解题思路
- 首先读取输入的四个整数;
- 使用深度优先搜索(DFS)算法尝试所有可能的运算组合;
- 定义一个全局变量 flag,用于表示是否能得到结果为24的运算;
- 定义一个数组 nums 存储四个输入的整数;
- 定义一个布尔数组 visit,用于标记数字是否已经被使用过;
- 实现递归函数 dfs,函数参数为当前已经使用的数字个数 u 和运算的中间结果 tmp;
- 递归终止条