import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static boolean[] visited = {false,false,false,false}; public static int[] nums = new int[4]; public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case for(int i=0;i<4;i++){ nums[i] = in.nextInt(); } //若考虑括号的情况,需要对数组再全排列,这里不写也能过 boolean flag = false; for(int i=0;i<4;i++){ visited[i] = true; if(cal(1,(double)nums[i])){ flag = true; break; }else{ visited[i] = false; } } System.out.print(flag); } } public static boolean cal(int used, double tempNum){ if(tempNum == 24.0d && used == 4){ return true; } for(int i=0;i<4;i++){ if(visited[i] == false){ visited[i] = true; if(cal(used+1,tempNum+nums[i]) || cal(used+1,tempNum-nums[i]) || cal(used+1,tempNum*nums[i]) || cal(used+1,tempNum/nums[i]) ){ return true; }else{ visited[i] = false; } } } return false; } } 稍作修改可过
点赞

相关推荐

牛客网
牛客企业服务