Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <algorithm>using namespace std;double op(double a, double b, int op, int& err) {switch(op) {case 0: return a + b;case 1: return a - b;case 2: return b - a;case 3: return a * b;case 4: return b == 0 ? err = 1 : a / b;case 5: return a == 0 ? err = 1 : b / a;}}bool solve24Game(int a, int b, int c, int d) {int N[4] = {a, b, c, d};sort(N, N + 4);do {for(int i = 0; i < 6; ++i) {for(int j = 0; j < 6; ++j) {for(int k = 0; k < 6; ++k) {int err = 0;double res = op(op(op(N[0], N[1], i, err), N[2], j, err), N[3], k, err);if (err == 0 && (23.999 < res && res < 24.001))return true;err = 0;res = op(op(N[0], N[1], i, err), op(N[2], N[3], j, err), k, err);if (err == 0 && (23.999 < res && res < 24.001))return true;}}