``` cpp string toBinary(int n){ string a=""; while(n!=0){ a+=n%2+'0'; n/=2; } reverse(a.begin(),a.end()); return a; } string transN(int n){ string s=toBinary(n); string t=""; for(int i=0;i<s.size();i++){ if(s[i]=='1'){ if(i==s.size()-1)t=t+"2(0)+"; else if(i==s.size()-2)t=t+"2+"; else if(i==s.size()-3)t=t+"2(2)+"; else t= t+"2("+transN(s.size()-i-1)+")+"; } } t.pop_back(); return t; } ``` 这里提供一个正序的不带尾部判断,直接把结束判断写在循环里面的例子
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务