#include <iostream> #include <vector> using namespace std; typedef long long int LL; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0); int t; std::cin >> t; for (int i = 0; i < t; i++) { LL a; std::cin >> a; std::vector<pair<LL, int>> number; LL isOk = 0; if (a <= 100) { for (int j = 0; j < a - 1; j++) { std::cout << "1+"; } std::cout << "1\n"; continue; } else { LL r = 0; LL res = a; int z = 0; while (res >= 2 || res >= 5) { if (z % 2 == 0) { r = res % 2; res = res / 2; isOk = isOk + 2 + r; number.push_back(make_pair(2, r)); } else { r = res % 5; res = res / 5; isOk = isOk + 5 + r; number.push_back(make_pair(5, r)); } z++; } } if (isOk > 100) { std::cout << "NIE\n"; } else { int naw = 0; for (int k = 0; k < number.size(); ++k) { if (k != 0 && k != number.size() - 1) { std::cout << "("; naw++; } std::cout << "("; for (int u = 0; u < number[k].first - 1; ++u) { std::cout << "1+"; } if (k < number.size() - 1) { std::cout << "1)*"; } else { std::cout << "1)"; } } int sz = number.size() - 1; for (int k = naw; k > 0; --k, --sz) { if (number[sz].second == 0) std::cout << ")"; else if (number[sz].second == 1) { std::cout << "+1)"; } else { std::cout << "+"; for (int u = number[sz].second - 1; u > 0; --u) { std::cout << "1+"; } std::cout << "1)"; } } if (number[0].second != 0) { std::cout << "+"; for (int k = number[0].second - 1; k > 0; --k) { std::cout << "1+"; } std::cout << "1"; } std::cout << '\n'; } } 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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | #include <iostream> #include <vector> using namespace std; typedef long long int LL; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0); int t; std::cin >> t; for (int i = 0; i < t; i++) { LL a; std::cin >> a; std::vector<pair<LL, int>> number; LL isOk = 0; if (a <= 100) { for (int j = 0; j < a - 1; j++) { std::cout << "1+"; } std::cout << "1\n"; continue; } else { LL r = 0; LL res = a; int z = 0; while (res >= 2 || res >= 5) { if (z % 2 == 0) { r = res % 2; res = res / 2; isOk = isOk + 2 + r; number.push_back(make_pair(2, r)); } else { r = res % 5; res = res / 5; isOk = isOk + 5 + r; number.push_back(make_pair(5, r)); } z++; } } if (isOk > 100) { std::cout << "NIE\n"; } else { int naw = 0; for (int k = 0; k < number.size(); ++k) { if (k != 0 && k != number.size() - 1) { std::cout << "("; naw++; } std::cout << "("; for (int u = 0; u < number[k].first - 1; ++u) { std::cout << "1+"; } if (k < number.size() - 1) { std::cout << "1)*"; } else { std::cout << "1)"; } } int sz = number.size() - 1; for (int k = naw; k > 0; --k, --sz) { if (number[sz].second == 0) std::cout << ")"; else if (number[sz].second == 1) { std::cout << "+1)"; } else { std::cout << "+"; for (int u = number[sz].second - 1; u > 0; --u) { std::cout << "1+"; } std::cout << "1)"; } } if (number[0].second != 0) { std::cout << "+"; for (int k = number[0].second - 1; k > 0; --k) { std::cout << "1+"; } std::cout << "1"; } std::cout << '\n'; } } return 0; } |