题目链接:https://www.luogu.org/problemnew/show/P1010
考查方向:递归,分治,位运算
#include <bits/stdc++.h>
using namespace std;
void dfs(int x)
{
for(int i=14;i>=0;i--)
{
if(pow(2,i)<=x)
{
if(i==0)printf("2(0)");
else if(i==1)printf("2");
else
{printf("2(");
dfs(i);
printf(")");
}
x-=pow(2,i);
if(x!=0)printf("+");
}
}
}
int main()
{
int n;
cin>>n;
dfs(n);
//cout<<pow(2,14);
}