#include <bits/stdc++.h>
using namespace std;
string solve(int k, int k0)
{
if(k == 1)
return "1";
else if(k == 2)
return "(1+1)";
if(k % 2)
{
if(k == k0)
return solve(k - 1, k0) + "+1";
else
return "(" + solve(k - 1, k0) + "+1)";
}
else
{
if(k % 4 == 0 || k == k0)
return solve(k / 2, k0) + "*(1+1)";
else
return "(" + solve(k / 2, k0) + "*(1+1))";
}
}
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
int k;
scanf("%d", &k);
string res = solve(k, k);
size_t sum = count(res.begin(), res.end(), '1');
if(sum <= 100)
printf("%s\n", res.c_str());
else
printf("NIE\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 | #include <bits/stdc++.h> using namespace std; string solve(int k, int k0) { if(k == 1) return "1"; else if(k == 2) return "(1+1)"; if(k % 2) { if(k == k0) return solve(k - 1, k0) + "+1"; else return "(" + solve(k - 1, k0) + "+1)"; } else { if(k % 4 == 0 || k == k0) return solve(k / 2, k0) + "*(1+1)"; else return "(" + solve(k / 2, k0) + "*(1+1))"; } } int main() { int t; scanf("%d", &t); while(t--) { int k; scanf("%d", &k); string res = solve(k, k); size_t sum = count(res.begin(), res.end(), '1'); if(sum <= 100) printf("%s\n", res.c_str()); else printf("NIE\n"); } return 0; } |
English