#include <bits/stdc++.h> using namespace std; vector <int> potegi[1]; bool czy; int wskaz; void wypisz() { int s=potegi[0].size(); while(potegi[0][wskaz]==0) wskaz++; int y=potegi[0][wskaz]; if(wskaz<s-1) { for(int i=0; i<y; i++) { printf("(1+1)"); printf("*"); } for(int i=wskaz; i<s; ++i) { potegi[0][i]-=y; } printf("("); wskaz++; wypisz(); printf("+1)"); } else { for(int i=0; i<y; ++i) { printf("(1+1)"); if(i!=y-1) printf("*"); } } } void zamien(int n) { potegi[0].clear(); if(n%2==1) czy=true; n=n/2; int i=1; while(n!=0) { if(n%2==1) { potegi[0].push_back(i); } n=n/2; i++; } wskaz=0; } int main() { int t,n; scanf("%d", &t); for(int i=0; i<t; ++i) { czy=false; scanf("%d", &n); if(n==1) printf("1\n"); else { zamien(n); wypisz(); if(czy==true) { printf("+1\n"); } else printf("\n"); } } 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | #include <bits/stdc++.h> using namespace std; vector <int> potegi[1]; bool czy; int wskaz; void wypisz() { int s=potegi[0].size(); while(potegi[0][wskaz]==0) wskaz++; int y=potegi[0][wskaz]; if(wskaz<s-1) { for(int i=0; i<y; i++) { printf("(1+1)"); printf("*"); } for(int i=wskaz; i<s; ++i) { potegi[0][i]-=y; } printf("("); wskaz++; wypisz(); printf("+1)"); } else { for(int i=0; i<y; ++i) { printf("(1+1)"); if(i!=y-1) printf("*"); } } } void zamien(int n) { potegi[0].clear(); if(n%2==1) czy=true; n=n/2; int i=1; while(n!=0) { if(n%2==1) { potegi[0].push_back(i); } n=n/2; i++; } wskaz=0; } int main() { int t,n; scanf("%d", &t); for(int i=0; i<t; ++i) { czy=false; scanf("%d", &n); if(n==1) printf("1\n"); else { zamien(n); wypisz(); if(czy==true) { printf("+1\n"); } else printf("\n"); } } return 0; } |