#include <cstdio> int t, k; char buf[1000]; void jedd(int n, char* buf, int br) { int r = n % 2; int d = n / 2; int pos = 0; if (n > 2) { buf[pos++] = '('; br++; } if (r) { buf[pos++] = '1'; if (d) { buf[pos++] = '+'; } } if (d) { buf[pos++] = '('; buf[pos++] = '1'; buf[pos++] = '+'; buf[pos++] = '1'; buf[pos++] = ')'; if (d > 1) { buf[pos++] = '*'; return jedd(d, buf + pos, br); } } for (int i = 0; i < br; i++) { buf[pos++] = ')'; } buf[pos++] = 0; } int main() { scanf("%d", &t); for (int i = 0; i < t; i++) { scanf("%d", &k); jedd(k, buf, 0); printf("%s\n", buf); } 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 | #include <cstdio> int t, k; char buf[1000]; void jedd(int n, char* buf, int br) { int r = n % 2; int d = n / 2; int pos = 0; if (n > 2) { buf[pos++] = '('; br++; } if (r) { buf[pos++] = '1'; if (d) { buf[pos++] = '+'; } } if (d) { buf[pos++] = '('; buf[pos++] = '1'; buf[pos++] = '+'; buf[pos++] = '1'; buf[pos++] = ')'; if (d > 1) { buf[pos++] = '*'; return jedd(d, buf + pos, br); } } for (int i = 0; i < br; i++) { buf[pos++] = ')'; } buf[pos++] = 0; } int main() { scanf("%d", &t); for (int i = 0; i < t; i++) { scanf("%d", &k); jedd(k, buf, 0); printf("%s\n", buf); } return 0; } |