import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int[] nums = new int[4]; for (int i = 0; i < 4; i++) { nums[i] = in.nextInt(); } // 加减乘除 运算结果24 // 四个运算符 + 不同运算顺序 boolean ans = dfs(nums, new int[4], 0, 0); System.out.println(ans); } } public static boolean dfs(int[] nums, int[] judge, double count, int index) { // judge防止元素重复利用 // 终止条件 if (count == 24.0) return true; else if (index == 4) return false; if (index == 0) { // 获取第一个数 for (int i = 0; i < 4; i++) { judge[i] = 1; if (dfs(nums, judge, count + nums[i], index + 1)) { return true; } judge[i] = 0; } } else { // 非第一个数的情况 for (int i = 0; i < 4; i++) { if (judge[i] == 0) { judge[i] = 1; // 加法 if (dfs(nums, judge, count + nums[i], index + 1)) return true; // 减法 if (dfs(nums, judge, count - nums[i], index + 1)) return true; // 乘法 if (dfs(nums, judge, count * nums[i], index + 1)) return true; // 除法 if (dfs(nums, judge, count / nums[i], index + 1)) return true; judge[i] = 0; } } } return false; } }