#include <iostream> #include <cstdio> #include <algorithm> #include <utility> using namespace std; int x[50]; int main(){ int a, b, c; int t = 1; scanf("%d", &c); for (int j = 1; j <= c; j++){ scanf("%d", &a); if (a == 1){ printf("1"); } else{ if (a == 2){ printf("1+1"); } else{ b = 0; t = 1; while (a != 0){ x[t] = a % 2; a = a / 2; b += x[t]; t++; //cout << x[t - 1] << " "; } //cout << endl; b--; b = b - x[1]; t--; for (int i = 1; i <= b; i++){ printf("("); } printf("(1+1)"); for (int i = t - 1; i >= 2; i--){ if (x[i] == 1) printf("+1)"); printf("*(1+1)"); } if (x[1] == 1) printf("+1"); } } printf("\n"); } //system("pause"); }
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 | #include <iostream> #include <cstdio> #include <algorithm> #include <utility> using namespace std; int x[50]; int main(){ int a, b, c; int t = 1; scanf("%d", &c); for (int j = 1; j <= c; j++){ scanf("%d", &a); if (a == 1){ printf("1"); } else{ if (a == 2){ printf("1+1"); } else{ b = 0; t = 1; while (a != 0){ x[t] = a % 2; a = a / 2; b += x[t]; t++; //cout << x[t - 1] << " "; } //cout << endl; b--; b = b - x[1]; t--; for (int i = 1; i <= b; i++){ printf("("); } printf("(1+1)"); for (int i = t - 1; i >= 2; i--){ if (x[i] == 1) printf("+1)"); printf("*(1+1)"); } if (x[1] == 1) printf("+1"); } } printf("\n"); } //system("pause"); } |