#include<iostream>
#include<cstdio>
#include<vector>
#include<map>
#include<set>
#include<algorithm>
using namespace std;
#define FOR(it,p,k) for(int it=p;it<=k;++it)
#define FORE(it,p,k) for(int it=p;it>=k;--it)
const int MX=-1;
main(){
int t;
cin>>t;
FOR(qwe,1,t){
int n;
cin>>n;
int is=0;
int p=-1;
int cos=0;
FORE(i,31,0){
int bit=(n>>i)&1;
// printf("%d",bit);
if(bit){
++p;
}
if(p==1){
if( (n>>(i+1))&1) cos=1;
}
}
int o=0,z=0;
//p-=cos;
//printf(" P=%d cos=%d\n",p,cos);
int q=0;
FORE(i,31,0){
int bit=(n>>i)&1;
//printf("%d",bit);
if(is){
//printf("*2");
//q+=2;
if(bit){
if(i!=0)
z+=2;//printf(")+1)"),z+=2;
else z+=1;//printf(")+1"),z+=1;
// q+=1;
}
}
if(!is && bit)is=1;//printf("1"),is=1,q+=1;
}
FOR(i,1,z) printf("("),++o;
is=0;
FORE(i,31,0){
int bit=(n>>i)&1;
//printf("%d",bit);
if(is){
printf("*(1+1)"),q+=2;
//q+=2;
if(bit){
if(i!=0)
printf(")+1)"),z+=2;
else printf(")+1"),z+=1;
q+=1;
}
}
if(!is && bit)printf("1"),is=1,q+=1;
}
//printf("q=%d {%d,%d}\n",q,o,z);
// if(qwe!=t)
printf("\n");
}
}
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 | #include<iostream> #include<cstdio> #include<vector> #include<map> #include<set> #include<algorithm> using namespace std; #define FOR(it,p,k) for(int it=p;it<=k;++it) #define FORE(it,p,k) for(int it=p;it>=k;--it) const int MX=-1; main(){ int t; cin>>t; FOR(qwe,1,t){ int n; cin>>n; int is=0; int p=-1; int cos=0; FORE(i,31,0){ int bit=(n>>i)&1; // printf("%d",bit); if(bit){ ++p; } if(p==1){ if( (n>>(i+1))&1) cos=1; } } int o=0,z=0; //p-=cos; //printf(" P=%d cos=%d\n",p,cos); int q=0; FORE(i,31,0){ int bit=(n>>i)&1; //printf("%d",bit); if(is){ //printf("*2"); //q+=2; if(bit){ if(i!=0) z+=2;//printf(")+1)"),z+=2; else z+=1;//printf(")+1"),z+=1; // q+=1; } } if(!is && bit)is=1;//printf("1"),is=1,q+=1; } FOR(i,1,z) printf("("),++o; is=0; FORE(i,31,0){ int bit=(n>>i)&1; //printf("%d",bit); if(is){ printf("*(1+1)"),q+=2; //q+=2; if(bit){ if(i!=0) printf(")+1)"),z+=2; else printf(")+1"),z+=1; q+=1; } } if(!is && bit)printf("1"),is=1,q+=1; } //printf("q=%d {%d,%d}\n",q,o,z); // if(qwe!=t) printf("\n"); } } |
English