0分求助,全部测试点WA
https://www.luogu.com.cn/record/69760793
#include<iostream>
using namespace std;
long long a[30]={1},n;
void dfs(long long n1)
{
int i=0;
if(n1!=0)
{
while(n1>=a[i]) i++; i--;
n1-=a[i];
printf("2");
if(i!=1) printf("(");
if(i==0||i==2) printf("%d)",i);
if(i>=3)
{
dfs(i);
printf(")");
}
if(n1!=0)
{
printf("+");
dfs(n1);
}
}
return;
}
int main()
{
scanf("%lld",&n);
for(int i=1;i<50;i++) a[i]=a[i-1]*2;
dfs(n);
return 0;
}
//2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
//73
//2(2(2)+2)+2(2+2(0))+2(0)