#include<bits/stdc++.h>
using namespace std;
string run(int x,int i=0,string s=string("")){
if(x==0)return string("0");
do if(x&1)s=(i==1?"2":"2("+run(i)+")")+(s==""?"":"+")+s;//拼接字符串,应题意,要把低次方接在后面
while(++i,x>>=1);//每次向右移位
return s;
}
int main(){
int x;cin>>x;
cout<<run(x)<<endl;
}
2条回答 默认 最新
- harmis_yz 2022-08-28 10:49关注
#include<bits/stdc++.h> using namespace std; string p(int x,int i=0,string a=string("")) { if(x==0) { return string("0"); } do { if(x&1) { a=(i==1?"2":"2("+p(i)+")")+(a==""?"":"+")+a; } } while(++i,x>>=1); return a; } long long aa; int main() { cin>>aa; cout<<p(aa); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报