题目link
#include<iostream>
using namespace std;
string a;bool flag=0;
int main(){
while(cin>>a){
flag=0;
if(a!="0"){
int t=0,t1=-1;
for(int i=0;i<=a.size();i++){
if(a[i]=='1'){
t++;
if(t1<0)t1=i;
}
else{
if(t>=2){
a[i-1]='-';
if(t1>0){
a[t1-1]='+';}
else if(t1==0){ flag=1;}
for(int j=t1;j<i-1;j++)a[j]='0';
}
t=0;t1=-1;
}
}
}
else break;
if(flag){
cout<<'+';
}
for(int i=0;i<a.size();i++){
if(a[i]=='1')cout<<'+';
else cout<<a[i];
}
cout<<endl;
}
return 0;
}
感觉都考虑到了,求助