#include <stdio.h> #include <inttypes.h> #include <string.h> #define U32 uint32_t #define I32 int32_t unsigned char razy2[7]="*(1+1)"; unsigned char odp1[10000], odp2[10000]; U32 t, _t; I32 i, j, ex; int main(int argc, char **argv) { odp1[0]='\0'; odp2[0]='\0'; scanf("%"SCNu32, &t); for (i=0; i<t; ++i){ scanf("%"SCNu32, &_t); if (_t==1){ printf("1\n"); }else if(_t<=100){ for (j=0; j<_t-1; ++j) printf("1+"); printf("1\n"); }else{ ex=30; while(!((_t>>ex)&1)) ex--; odp1[0]='1'; odp1[1]='\0'; while(ex>=1){ //fix dizz ex--; strcpy(odp2, odp1); odp1[0]='('; odp1[1]='\0'; strcat(odp1, odp2); strcat(odp1, razy2); strcat(odp1, ")"); if ((_t>>ex)&1){ strcpy(odp2, odp1); odp1[0]='('; odp1[1]='\0'; strcat(odp1, odp2); strcat(odp1, "+1"); strcat(odp1, ")"); } } printf("%s\n", odp1); } } //printf("%s\n", odp); //strcat(odp, razy2); 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 | #include <stdio.h> #include <inttypes.h> #include <string.h> #define U32 uint32_t #define I32 int32_t unsigned char razy2[7]="*(1+1)"; unsigned char odp1[10000], odp2[10000]; U32 t, _t; I32 i, j, ex; int main(int argc, char **argv) { odp1[0]='\0'; odp2[0]='\0'; scanf("%"SCNu32, &t); for (i=0; i<t; ++i){ scanf("%"SCNu32, &_t); if (_t==1){ printf("1\n"); }else if(_t<=100){ for (j=0; j<_t-1; ++j) printf("1+"); printf("1\n"); }else{ ex=30; while(!((_t>>ex)&1)) ex--; odp1[0]='1'; odp1[1]='\0'; while(ex>=1){ //fix dizz ex--; strcpy(odp2, odp1); odp1[0]='('; odp1[1]='\0'; strcat(odp1, odp2); strcat(odp1, razy2); strcat(odp1, ")"); if ((_t>>ex)&1){ strcpy(odp2, odp1); odp1[0]='('; odp1[1]='\0'; strcat(odp1, odp2); strcat(odp1, "+1"); strcat(odp1, ")"); } } printf("%s\n", odp1); } } //printf("%s\n", odp); //strcat(odp, razy2); return 0; } |