注意有三种特判
#include <bits/stdc++.h>
using namespace std;
void work(int n)
{
if(n==1)
{
cout << "2(0)";
return ;
}
if(n==2)
{
cout << "2";
return ;
}
if(n==3)
{
cout << "2+2(0)";
return ;
}
cout << "2(";
int t=(int)log2(n);
work(t);
cout << ")";
if(n-pow(2,(double)t)!=0)
{
cout << "+";
work(n-(int)pow(2,(double)t));
}
}
int main()
{
int n;
cin >> n;
work(n);
return 0;
}