#include <iostream>
#include <string>
#include <list>
using namespace std;
int main()
{
int test; // liczba testow
cin >> test;
for(int i = 0; i < test; ++i)
{
list<char> result;
int number, counter = 0;
cin >> number;
int power;
for(power = 0; 1<<(power+1) <= number; ++power);
for(; power >= 0; --power)
{
if(number & 1<<power)
{
if(result.empty()) result.push_back('1');
else
{
result.push_front('(');
result.push_back('+');
result.push_back('1');
result.push_back(')');
}
counter++;
}
if(power > 0)
{
// Multiply all by 2
result.push_back('*');
result.push_back('(');
result.push_back('1');
result.push_back('+');
result.push_back('1');
result.push_back(')');
counter += 2;
}
}
string output;
output.insert(output.begin(), result.begin(), result.end());
if(counter > 100) cout << "NIE" << endl;
else cout << output << endl;
}
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 | #include <iostream> #include <string> #include <list> using namespace std; int main() { int test; // liczba testow cin >> test; for(int i = 0; i < test; ++i) { list<char> result; int number, counter = 0; cin >> number; int power; for(power = 0; 1<<(power+1) <= number; ++power); for(; power >= 0; --power) { if(number & 1<<power) { if(result.empty()) result.push_back('1'); else { result.push_front('('); result.push_back('+'); result.push_back('1'); result.push_back(')'); } counter++; } if(power > 0) { // Multiply all by 2 result.push_back('*'); result.push_back('('); result.push_back('1'); result.push_back('+'); result.push_back('1'); result.push_back(')'); counter += 2; } } string output; output.insert(output.begin(), result.begin(), result.end()); if(counter > 100) cout << "NIE" << endl; else cout << output << endl; } return 0; } |
English