70分求助
查看原帖
70分求助
1267066
yi18600361898楼主2024/12/2 20:28
#include <bits/stdc++.h>
using namespace std;
string ei;
string fan();
int main(){
    cin>>ei;
    if(ei=="0"){
        cout<<0;
        return 0;
    }
    cout<<fan();
    return 0;
}

string fan(){
    string er;
	int len=ei.length()*3;
	if(len%4){
        for(int i=0;i<4-(len%4);i++) er+='0';
    }
    for(int i=0;i<ei.length();i++){
        if(ei[i]=='0') er+="000";
        else if(ei[i]=='1') er+="001";
        else if(ei[i]=='2') er+="010";
        else if(ei[i]=='3') er+="011";
        else if(ei[i]=='4') er+="100";
        else if(ei[i]=='5') er+="101";
        else if(ei[i]=='6') er+="110";
        else if(ei[i]=='7') er+="111";
    }
    string six,fu;
    for(int i=0;i<len;i+=4){
    	fu=er[i];
    	for(int j=1;j<=3;j++) fu+=er[i+j];
    	if(fu=="0000") six+='0';
    	else if(fu=="0001") six+='1';
    	else if(fu=="0010") six+='2';
    	else if(fu=="0011") six+='3';
    	else if(fu=="0100") six+='4';
    	else if(fu=="0101") six+='5';
    	else if(fu=="0110") six+='6';
    	else if(fu=="0111") six+='7';
    	else if(fu=="1000") six+='8';
    	else if(fu=="1001") six+='9';
    	else if(fu=="1010") six+='a';
    	else if(fu=="1011") six+='b';
    	else if(fu=="1100") six+='c';
    	else if(fu=="1101") six+='d';
    	else if(fu=="1110") six+='e';
    	else if(fu=="1111") six+='f';
	}
	if(six[0]=='0'){
	    for(int i=1;i<six.length();i++){
	    	six[i-1]=six[i];
	    }
	}
    return six;
}
2024/12/2 20:28
加载中...