左脑攻击右脑,过载代替思考 • 11个月前
#include<bits/stdc++.h>
using namespace std;
int m,v[21];
void hs(int n){
int flag=0,i;
for(i=m;i>=0;i--){
if(v[i]<=n){
n=n-v[i];
if(flag==0){
flag=1;
}else{
cout<<"+";
}
if(i>1){
cout<<"2(";
hs(i);
cout<<")";
}
if(i==1){
cout<<"2";
}
if(i==0){
cout <<"2(0)";
}
}
}
}
int main(){
int n=0;
cin>>n;
m=0;
v[0]=1;
while(v[m]<n){
m++;
v[m]=v[m-1]*2;
}
hs(n);
return 0;
}
评论:
请先登录,才能进行评论