#include <algorithm> #include <iostream> #include <vector> using namespace std; double cal(double a, double b, char c) { switch (c) { case '+' : return a + b; case '-' : return a - b; case '*' : return a * b; case '/' : return a / b; } return 0; } bool check(vector<double> v) { char op[4] = {'+', '-', '*', '/'}; sort(v.begin(), v.end()); do { for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { for (int k = 0; k < 4; k++) { if (abs(cal(cal(cal(v[0], v[1], op[i]), v[2], op[j]), v[3], op[k]) - 24) < 1e-6 || abs(cal(cal(v[0], cal(v[1], v[2], op[j]), op[i]), v[3], op[k]) - 24) < 1e-6 || abs(cal(cal(v[0], v[1], op[i]), cal(v[2], v[3], op[k]), op[j]) - 24) < 1e-6 || abs(cal(v[0], cal(cal(v[1], v[2], op[j]), v[3], op[k]), op[i]) - 24) < 1e-6 || abs(cal(v[0], cal(v[1], cal(v[2], v[3], op[k]), op[j]), op[i]) - 24) < 1e-6) { // cout<<v[0]<<op[i]<<v[1]<<op[j]<<v[2]<<op[k]<<v[3]; return true; } } } } } while (next_permutation(v.begin(), v.end())); return false; } int main() { vector<double> v(4); while (cin >> v[0] >> v[1] >> v[2] >> v[3]) { // 注意 while 处理多个 case if (check(v)) { cout << "true" << endl; } else { cout << "false" << endl; } } } // 64 位输出请用 printf("%lld")