```c
#include<iostream>
#include<cmath>
using namespace std;
int a;
void fff(int x)
{
for(int i=14;i>=0;i--)
{
if(pow(2,i)<=x){
if(i==1) cout<<"2";
else if(i==0) cout<<"2(0)";
else{
cout<<"2(";
fff(i);
cout<<")";
}
x-=pow(2,i);
if(x!=0) cout<<"+";
}
}
}
int main()
{
cin>>a;
fff(a);
return 0;
}
```
by Shui_mo @ 2024-04-27 20:57:33
自己看了一遍发现我们老师这篇题解是抄的
by Shui_mo @ 2024-04-27 20:58:17
@[Shui_mo](/user/1267879)
我是问我的哪里错了?不是要AC他,如果超题解的话,谁不是红名?
by xpg007 @ 2024-04-27 21:01:59
@[xpg007](/user/1024680)
~~您思路很奇怪~~
```
其实可以
递归 (x) {
int t = log (x) // 当前最多是2的t次方
如果 t==1
输出 2 // 当前是2的1次方
如果 t==0
输出 2(0) // 当前是1(2的0次方)
否则 // 都不是
输出 2(
递归 (t) // 递归分解
输出 )
}
```
我觉得您的dfs没有起到该有的作用
by a_little_carrot @ 2024-04-27 21:18:29