// Zadanie: Jedynki [B] // Autor: Arkadiusz Roussau #include <iostream> #include <string> #include <vector> #include <cstdio> using namespace std; int t, val; void solve(int v) { string res = ""; vector<int> bits; while (v > 0) { int r = v % 2; bits.push_back(r); v -= r; v /= 2; } for (int i = bits.size() - 1; i >= 0; --i) { if (i == bits.size() - 1) { res += "1"; } else if (bits[i] == 1) { res += "+1)"; } if (i > 0) { res += "*(1+1))"; } } int c1 = 0, c2 = 0; for (int i = 0; i < res.length(); ++i) { if (res[i] == ')') { c1++; } else if (res[i] == '(') { c2++; } } string aux = ""; for (int i = c2; i < c1; i++) { aux += "("; } res = aux + res; cout << res << endl; } int main() { ios_base::sync_with_stdio(0); cin >> t; for (int i = 0; i < t; ++i) { cin >> val; solve(val); } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | // Zadanie: Jedynki [B] // Autor: Arkadiusz Roussau #include <iostream> #include <string> #include <vector> #include <cstdio> using namespace std; int t, val; void solve(int v) { string res = ""; vector<int> bits; while (v > 0) { int r = v % 2; bits.push_back(r); v -= r; v /= 2; } for (int i = bits.size() - 1; i >= 0; --i) { if (i == bits.size() - 1) { res += "1"; } else if (bits[i] == 1) { res += "+1)"; } if (i > 0) { res += "*(1+1))"; } } int c1 = 0, c2 = 0; for (int i = 0; i < res.length(); ++i) { if (res[i] == ')') { c1++; } else if (res[i] == '(') { c2++; } } string aux = ""; for (int i = c2; i < c1; i++) { aux += "("; } res = aux + res; cout << res << endl; } int main() { ios_base::sync_with_stdio(0); cin >> t; for (int i = 0; i < t; ++i) { cin >> val; solve(val); } return 0; } |