#include<iostream>
#include<string>
using namespace std;
void pr(int u){
if(u<=0)cout<<"2(0)";
else if(u==1)cout<<"2";
else{
cout<<"2(";
int a=1,p=0,o=u;
while(a<o){
a<<=1;
p++;
}
int flag=0;
while(o>0){
if(a<=o){
o-=a;
if(flag==1)cout<<"+";
else flag=1;
pr(p);
}
a>>=1;
p--;
}
cout<<")";
}
}
int main(){
long long n,a=1;
scanf("%lld",&n);
int p=0;
while(a<n){
a<<=1;
p++;
}
int flag=0;
while(n>0){
if(a<=n){
n-=a;
if(flag==1)cout<<"+";
else flag=1;
pr(p);
}
a>>=1;
p--;
}
return 0;
}
luoguP1010幂次方题解
最新推荐文章于 2024-06-19 15:56:33 发布