import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] nums = new int[4]; // 存放数字 int[] visit = new int[4]; // 存放对应位置数字的使用状态(1代表已使用) List<Double> list = new ArrayList<Double>(); for (int i = 0; i < 4; i++) { visit[i] = 0; nums[i] = in.nextInt(); list.add((double)nums[i]); } if(dfs(list)){ System.out.print("true"); return; } System.out.print("false"); } public static boolean dfs(List<Double> list) { if (list.size() == 1) { if (Math.abs(list.get(0) - 24) <1e-6 ) { return true; } else { return false; } } for (int i = 0; i < list.size(); i++) { for (int j = i+1; j < list.size(); j++) { double n1 = list.get(i); double n2 = list.get(j); List<Double> listNew = new ArrayList<Double>(list); listNew.remove(Double.valueOf(n1)); listNew.remove(Double.valueOf(n2)); listNew.add(n1 + n2); if (dfs(listNew)) { return true; } listNew.remove(Double.valueOf(n1 + n2)); listNew.add(n1 * n2); if (dfs(listNew)) { return true; } listNew.remove(Double.valueOf(n1 * n2)); listNew.add(n1 - n2); if (dfs(listNew)) { return true; } listNew.remove(Double.valueOf(n1 - n2)); listNew.add(n2 - n1); if (dfs(listNew)) { return true; } listNew.remove(Double.valueOf(n2 - n1)); if (n2!=0 ) { listNew.add(n1 / n2); if (dfs(listNew)) { return true; } listNew.remove(Double.valueOf(n1 / n2)); } if (n1!= 0 ) { listNew.add(n2 / n1); if (dfs(listNew)) { return true; } listNew.remove(Double.valueOf(n2 / n1)); } } } return false; } }