#include <iostream> #include <string> #include <vector> using namespace std; int main(){ ios_base::sync_with_stdio(0); bool czy_jedynka = false; bool czy_pierwszy_wyraz; int ile_nawiasow; int ile_jedynek; long long int k; int t; cin >> t; for(int i=0; i<t; i++){ czy_pierwszy_wyraz = true; ile_nawiasow = 0; ile_jedynek = 0; cin >> k; vector<string> wypisz; while(k != 1){ if(k%3 == 0){ ile_jedynek+=3; k = k/3; if(czy_pierwszy_wyraz == true){ czy_pierwszy_wyraz = false; wypisz.push_back("(1+1+1)"); } else { if(czy_jedynka == true){ ile_nawiasow++; czy_jedynka = false; wypisz.push_back("(1+1+1)"); } else { wypisz.push_back("*(1+1+1)"); } } } else{ if(k%2 == 0){ ile_jedynek+=2; k = k/2; if(czy_pierwszy_wyraz == true){ czy_pierwszy_wyraz = false; wypisz.push_back("(1+1)"); } else { if(czy_jedynka == true){ ile_nawiasow++; czy_jedynka = false; wypisz.push_back("(1+1)"); } else { wypisz.push_back("*(1+1)"); } } } else { ile_jedynek++; k--; czy_jedynka = true; if(czy_pierwszy_wyraz == true){ czy_pierwszy_wyraz = false; wypisz.push_back("(1+"); } else { wypisz.push_back("*(1+"); } } } } if(wypisz.size() == 1){ for(int i=1; i < wypisz[0].size()-1; i++){ cout << wypisz[0][i]; } } else{ if(ile_jedynek == 0){ cout << "1"; } else { if(ile_jedynek <= 100){ if(wypisz[0] == "(1+"){ wypisz[0] = "1+"; ile_nawiasow--; } for(int i=0; i < wypisz.size(); i++){ cout << wypisz[i]; } for(int y=0; y < ile_nawiasow; y++){ cout << ")"; } } else { cout << "NIE"; } } } cout << endl; } 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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | #include <iostream> #include <string> #include <vector> using namespace std; int main(){ ios_base::sync_with_stdio(0); bool czy_jedynka = false; bool czy_pierwszy_wyraz; int ile_nawiasow; int ile_jedynek; long long int k; int t; cin >> t; for(int i=0; i<t; i++){ czy_pierwszy_wyraz = true; ile_nawiasow = 0; ile_jedynek = 0; cin >> k; vector<string> wypisz; while(k != 1){ if(k%3 == 0){ ile_jedynek+=3; k = k/3; if(czy_pierwszy_wyraz == true){ czy_pierwszy_wyraz = false; wypisz.push_back("(1+1+1)"); } else { if(czy_jedynka == true){ ile_nawiasow++; czy_jedynka = false; wypisz.push_back("(1+1+1)"); } else { wypisz.push_back("*(1+1+1)"); } } } else{ if(k%2 == 0){ ile_jedynek+=2; k = k/2; if(czy_pierwszy_wyraz == true){ czy_pierwszy_wyraz = false; wypisz.push_back("(1+1)"); } else { if(czy_jedynka == true){ ile_nawiasow++; czy_jedynka = false; wypisz.push_back("(1+1)"); } else { wypisz.push_back("*(1+1)"); } } } else { ile_jedynek++; k--; czy_jedynka = true; if(czy_pierwszy_wyraz == true){ czy_pierwszy_wyraz = false; wypisz.push_back("(1+"); } else { wypisz.push_back("*(1+"); } } } } if(wypisz.size() == 1){ for(int i=1; i < wypisz[0].size()-1; i++){ cout << wypisz[0][i]; } } else{ if(ile_jedynek == 0){ cout << "1"; } else { if(ile_jedynek <= 100){ if(wypisz[0] == "(1+"){ wypisz[0] = "1+"; ile_nawiasow--; } for(int i=0; i < wypisz.size(); i++){ cout << wypisz[i]; } for(int y=0; y < ile_nawiasow; y++){ cout << ")"; } } else { cout << "NIE"; } } } cout << endl; } return 0; } |