#include <bits/stdc++.h> using namespace std; vector<char> v; void f(int x){ if(x == 2){ v.push_back('('); v.push_back('1'); v.push_back('+'); v.push_back('1'); v.push_back(')'); } else if(x % 2 == 0){ v.push_back('('); v.push_back('1'); v.push_back('+'); v.push_back('1'); v.push_back(')'); v.push_back('*'); if(x % 4 != 0) v.push_back('('); f(x / 2); if(x % 4 != 0) v.push_back(')'); } else { v.push_back('1'); v.push_back('+'); f(x - 1); } } int main() { int t; scanf("%d", &t); while(t--){ int in; cin >> in; if(in == 1) cout << "1\n"; else if(in == 2) cout << "1+1\n"; else { f(in); for(char x : v) cout<<x; cout << endl; v.clear(); } } }
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 | #include <bits/stdc++.h> using namespace std; vector<char> v; void f(int x){ if(x == 2){ v.push_back('('); v.push_back('1'); v.push_back('+'); v.push_back('1'); v.push_back(')'); } else if(x % 2 == 0){ v.push_back('('); v.push_back('1'); v.push_back('+'); v.push_back('1'); v.push_back(')'); v.push_back('*'); if(x % 4 != 0) v.push_back('('); f(x / 2); if(x % 4 != 0) v.push_back(')'); } else { v.push_back('1'); v.push_back('+'); f(x - 1); } } int main() { int t; scanf("%d", &t); while(t--){ int in; cin >> in; if(in == 1) cout << "1\n"; else if(in == 2) cout << "1+1\n"; else { f(in); for(char x : v) cout<<x; cout << endl; v.clear(); } } } |