// Przemysław Szpakowicz #include <cstdio> void printUnaryExpressionEqualTo(const int &number) { if(number <= 0) return; if(number % 2) { printf("1"); if(number > 1) printf("+"), printUnaryExpressionEqualTo(number - 1); } else { printf("(1+1)"); if(number > 2) { printf("*"); if((number / 2) % 2) printf("("); printUnaryExpressionEqualTo(number / 2); if((number / 2) % 2) printf(")"); } } } void parseTest() { int number; scanf("%d", &number); printUnaryExpressionEqualTo(number); puts(""); } int main() { int testsAmount; scanf("%d", &testsAmount); while(testsAmount--) parseTest(); }
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 | // Przemysław Szpakowicz #include <cstdio> void printUnaryExpressionEqualTo(const int &number) { if(number <= 0) return; if(number % 2) { printf("1"); if(number > 1) printf("+"), printUnaryExpressionEqualTo(number - 1); } else { printf("(1+1)"); if(number > 2) { printf("*"); if((number / 2) % 2) printf("("); printUnaryExpressionEqualTo(number / 2); if((number / 2) % 2) printf(")"); } } } void parseTest() { int number; scanf("%d", &number); printUnaryExpressionEqualTo(number); puts(""); } int main() { int testsAmount; scanf("%d", &testsAmount); while(testsAmount--) parseTest(); } |