转c++const farray14 of char=+-;运算符var karray14 of integer;ijnmpqtwinteger;abcdxyzinteger; s1s2s3ansstring; vreal; flagboolean;function countxyinteger; chintegerinteger;计算begin case ch of 1exitx+y;
#include
char f[4] = {'+', '-', '*', '/'}; // 运算符 int k[4]; int a, b, c, d, x, y, z; string s1, s2, s3, ans; bool flag;
int count(int x, int y, int ch) // 计算 { switch (ch) { case 1: return x + y; case 2: return x - y; case 3: return x * y; case 4: return x / y; } }
int main() { for (int i = 0; i < 4; i++) { cin >> k[i]; } ans = "z"; for (a = 0; a < 4; a++) { for (b = 0; b < 4; b++) { if (a != b) { for (c = 0; c < 4; c++) { if (c != a && c != b) { for (d = 0; d < 4; d++) // 枚举四个数字 { if (d != a && d != b && d != c) { for (x = 0; x < 4; x++) { for (y = 0; y < 4; y++) { for (z = 0; z < 4; z++) { // 枚举三个运算符 flag = true; if (x != 3 || (k[a] % k[b] == 0)) { int p = count(k[a], k[b], x); } else { flag = false; // 显然,如果中间值出现小数,这个模拟就是不成立的 } if (flag) { if (y != 3 || (p % k[c] == 0)) { int p = count(p, k[c], y); } else { flag = false; } if (flag) { if (z != 3 || (p % k[d] == 0)) { int p = count(p, k[d], z); } else { flag = false; } if (flag) { if (p == 24) { s1 = '(' + to_string(k[a]) + f[x] + to_string(k[b]) + ')'; s1 = '(' + s1 + f[y] + to_string(k[c]) + ')'; s1 = '(' + s1 + f[z] + to_string(k[d]) + ')';
if (s1 < ans || ans == "z")
{
ans = s1;
}
}
}
}
}
flag = true;
if (x != 3 || (k[a] % k[b] == 0))
{
int p = count(k[a], k[b], x);
}
else
{
flag = false;
}
if (flag)
{
if (z != 3 || (k[c] % k[d] == 0))
{
int q = count(k[c], k[d], z);
}
else
{
flag = false;
}
if (flag)
{
if (y != 3 || (q != 0 && p % q == 0))
{
int p = count(p, q, y);
}
else
{
flag = false;
}
if (flag)
{
if (p == 24)
{
s1 = '(' + to_string(k[a]) + f[x] + to_string(k[b]) + ')';
s2 = '(' + to_string(k[c]) + f[z] + to_string(k[d]) + ')';
s1 = '(' + s1 + f[y] + s2 + ')';
if (s1 < ans || ans == "z")
{
ans = s1;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
cout << ans << endl;
return 0;
原文地址: https://www.cveoy.top/t/topic/iCLO 著作权归作者所有。请勿转载和采集!