#include <bits/stdc++.h>
using namespace std;
#define pb push_back
int n;
string answer;
vector <int> bit;
int main(){
	int quest;
	scanf("%d", &quest);
	while(quest--){
		bit.clear();
		answer.clear();
		scanf("%d", &n);
//		printf("%d\n", n);
		
		if(n == 1){
			puts("1");
			return 0;
		}
		
		while(n > 0){
			bit.pb(n%2);
			n /= 2;
		}
		
		for(int i = 0; i < bit.size(); ++i){
			if(i == bit.size() - 1){
				answer.pop_back();
				break;
			}
	
			int v = bit[i];
			if(v == 1){
				answer = answer + '(' + '1' + '+' + '(' + '1' + '+' + '1' + ')' + '*';
			}
			else{
				answer = answer + '(' + '1' + '+' + '1' + ')' + '*';
			}
		}
		
		int ile = 0;
		for(auto v: answer)
			if(v == '(')
				++ile;
			else if(v == ')')
				--ile;
		
		while(ile--)
			answer.pb(')');
		
		for(int i = 0; i < answer.size(); ++i)
			printf("%c", answer[i]);
		puts("");
	}
	
	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 | #include <bits/stdc++.h> using namespace std; #define pb push_back int n; string answer; vector <int> bit; int main(){ int quest; scanf("%d", &quest); while(quest--){ bit.clear(); answer.clear(); scanf("%d", &n); // printf("%d\n", n); if(n == 1){ puts("1"); return 0; } while(n > 0){ bit.pb(n%2); n /= 2; } for(int i = 0; i < bit.size(); ++i){ if(i == bit.size() - 1){ answer.pop_back(); break; } int v = bit[i]; if(v == 1){ answer = answer + '(' + '1' + '+' + '(' + '1' + '+' + '1' + ')' + '*'; } else{ answer = answer + '(' + '1' + '+' + '1' + ')' + '*'; } } int ile = 0; for(auto v: answer) if(v == '(') ++ile; else if(v == ')') --ile; while(ile--) answer.pb(')'); for(int i = 0; i < answer.size(); ++i) printf("%c", answer[i]); puts(""); } return 0; } | 
 
            
         English
                    English