思路
我不知道我在写什么
代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n;
int a[16];
string b[16];
int main()
{
a[0]=1;
for(int i=1;i<=14;i++)a[i]=2*a[i-1];
b[0]="2(0)",b[1]="2",b[2]="2(2)",b[3]="2(2+2(0))",b[4]="2(2(2))",b[5]="2(2(2)+2(0))",b[6]="2(2(2)+2)";
b[7]="2(2(2)+2+2(0))",b[8]="2(2(2+2(0)))",b[9]="2(2(2+2(0))+2(0))",b[10]="2(2(2+2(0))+2)",b[11]="2(2(2+2(0))+2+2(0))";
b[12]="2(2(2+2(0))+2(2))",b[13]="2(2(2+2(0))+2(2)+2(0))",b[14]="2(2(2+2(0))+2(2)+2)";
while(cin>>n)
{
string res;
int cnt=0;
for(int i=14;i>=0&&n>=0;i--)
{
if(a[i]<=n)
{
cnt++;
if(cnt==1)
{
res=b[i];
n-=a[i];
}
else
{
res+="+"+b[i];
n-=a[i];
}
}
}
cout<<res<<endl;
}
return 0;
}