#include <iostream>
using namespace std;
string m[3]={"2(0)","2","2(2)"};
void Print(int n,int step){
if(n<=2){
cout<<m[n];
return;
}
if(step) cout<<"2("; //第一次调用不用输出
int bit[15]={0},i,j;
for(i=0;n;i++){
bit[i]=n&1;
n>>=1;
}
for(j=i-1;j>=0;j--){
if(bit[j]){
if(j!=i-1) cout<<"+";
Print(j,step+1);
}
}
if(step) cout<<")";
}
int main(){
int n;cin>>n;
Print(n,0);
return 0;
}
4332: 二的幂次方
最新推荐文章于 2024-05-31 17:52:13 发布