#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"); } } |