原,反,补

#include <iostream>
using namespace std;
int main(){
    string str;
    char t;
    bool jinwei=true;
    bool tf;
    cin>>str>>t;
    if(str[0]=='0'&&t=='f'){
        cout<<str;
    }else if(str[0]=='1'&&t=='f'){
        for(int i=1;i<=str.size();i++){
            if(str[i]=='0'){
                str[i]='1';
            }else if(str[i]=='1'){
                str[i]='0';
            }
        }
        cout<<str;
    }
     
    if(str[0]=='0'&&t=='b'){
        cout<<str;
    }else if(str[0]=='1'&&t=='b'){
        for(int i=1;i<=str.size();i++){
            if(str[i]=='0'){
                str[i]='1';
            }else if(str[i]=='1'){
                str[i]='0';
            }
        }
         
        for(int i=str.size()-1;i>1;i--){
            if(str[i]=='1'){
                tf=true;
            }else if(str[i]=='0'){
                tf=false;
            }
            if(!tf){
                break;
            }
        }
        if(tf){
            cout<<"11";
            for(int i=0;i<str.size()-1;i++){
                cout<<'0';
            }
            return 0;
        }
        for(int i=str.size()-1;i>=1;i--){
            if(str[i]=='0'){
                if(jinwei==true){
                    str[i]='1';
                    jinwei=false;
                    break;
                }
                         
            }else if(str[i]=='1'){
                if(jinwei==true){
                    str[i]='0';
                    jinwei=true;
                }
            }
        }
        for(int i=0;i<str.size();i++){
            cout<<str[i];
        }
    }
    return 0;
}

 

posted @ 2023-10-22 08:42  爱吃泡面的皮卡  阅读(18)  评论(0)    收藏  举报