RT
为啥我输出和题目的一样,但锣鼓的评测判我WA QAQ
求大佬看看
#include<iostream>
using namespace std;
#define f(n) for(int i=n;i>1;i--)
int n;
void work(int x)
{
if(x==2)
{
cout<<"2";
return;
}
if(x&(x-1)==0)
{
int a=-1;
while(x!=0)a++,x>>=1;
work(a);
return;
}
int a[16]={0,0},al=1;
while(x>0)
{
if(x&1)a[++al]=a[al-1];
a[al]++;
x>>=1;
}
f(al-1)
if(a[i]==1)cout<<"2+";
else
{
cout<<"2(";
if(a[i]==0)cout<<"0";
else work(a[i]);
cout<<")+";
}
if(a[1]==1)cout<<"2";
else
{
cout<<"2(";
if(a[1]==0)cout<<"0";
else work(a[1]);
cout<<")";
}
}
int main()
{
cin>>n;
work(n);
return 0;
}