#include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); string one = "(1+("; string two = "(1+1)"; string mult = "*"; string three = "(1+1+1)"; string close = ")"; string result = ""; string closing = ""; int t, k, opening, prev, num; cin >> t; for(int i=0; i<t; i++){ cin >> k; opening = 0; num = 0; result = ""; prev = 0; if(k == 1) { cout << "1\n"; continue; } while(k>1 && num<=100) { if(k%3 == 0) { num += 3; k /= 3; if(prev == 2 || prev == 3) result += mult; result += three; prev = 3; } else if(k%2 == 0){ num += 2; k /= 2; if(prev == 2 || prev == 3) result += mult; result += two; prev = 2; } else { k--; num++; opening += 2; if(prev == 2 || prev == 3) result += mult; result += one; prev = 1; } } if(k > 1 || num > 100) { cout << "NIE\n"; continue; } cout << result; closing = ""; for(int z=0; z<opening; z++) { closing += close; } cout << closing << '\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 | #include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); string one = "(1+("; string two = "(1+1)"; string mult = "*"; string three = "(1+1+1)"; string close = ")"; string result = ""; string closing = ""; int t, k, opening, prev, num; cin >> t; for(int i=0; i<t; i++){ cin >> k; opening = 0; num = 0; result = ""; prev = 0; if(k == 1) { cout << "1\n"; continue; } while(k>1 && num<=100) { if(k%3 == 0) { num += 3; k /= 3; if(prev == 2 || prev == 3) result += mult; result += three; prev = 3; } else if(k%2 == 0){ num += 2; k /= 2; if(prev == 2 || prev == 3) result += mult; result += two; prev = 2; } else { k--; num++; opening += 2; if(prev == 2 || prev == 3) result += mult; result += one; prev = 1; } } if(k > 1 || num > 100) { cout << "NIE\n"; continue; } cout << result; closing = ""; for(int z=0; z<opening; z++) { closing += close; } cout << closing << '\n'; } return 0; } |