80 1和6不对
查看原帖
80 1和6不对
936240
IsaacFoster楼主2024/5/26 21:49
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string turi[]={"000","001","010","011","100","101","110","111"};
int main(){
	string s,ts,tts;
	cin>>s;
	if(s[0]=='0'){
	    cout<<0;
	    return 0;
	}
	for(int i=0;i<s.size();i++){
		ts+=turi[s[i]-'0'];
	}
	if(s.size()%4!=0){
		string g;
		for(int i=1;i<=4-ts.size()%4;i++){
			g+='0';
		}
		g+=ts;
		ts=g;
	}
	for(int i=0;i<ts.size();i+=4){
		if(ts[i]=='0' && ts[i+1]=='0' && ts[i+2]=='0' && ts[i+3]=='0') tts+='0';
		if(ts[i]=='0' && ts[i+1]=='0' && ts[i+2]=='0' && ts[i+3]=='1') tts+='1';
		if(ts[i]=='0' && ts[i+1]=='0' && ts[i+2]=='1' && ts[i+3]=='0') tts+='2';
		if(ts[i]=='0' && ts[i+1]=='0' && ts[i+2]=='1' && ts[i+3]=='1') tts+='3';
		if(ts[i]=='0' && ts[i+1]=='1' && ts[i+2]=='0' && ts[i+3]=='0') tts+='4';
		if(ts[i]=='0' && ts[i+1]=='1' && ts[i+2]=='0' && ts[i+3]=='1') tts+='5';
		if(ts[i]=='0' && ts[i+1]=='1' && ts[i+2]=='1' && ts[i+3]=='0') tts+='6';
		if(ts[i]=='0' && ts[i+1]=='1' && ts[i+2]=='1' && ts[i+3]=='1') tts+='7';
		if(ts[i]=='1' && ts[i+1]=='0' && ts[i+2]=='0' && ts[i+3]=='0') tts+='8';
		if(ts[i]=='1' && ts[i+1]=='0' && ts[i+2]=='0' && ts[i+3]=='1') tts+='9';
		if(ts[i]=='1' && ts[i+1]=='0' && ts[i+2]=='1' && ts[i+3]=='0') tts+='a';
		if(ts[i]=='1' && ts[i+1]=='0' && ts[i+2]=='1' && ts[i+3]=='1') tts+='b';
		if(ts[i]=='1' && ts[i+1]=='1' && ts[i+2]=='0' && ts[i+3]=='0') tts+='c';
		if(ts[i]=='1' && ts[i+1]=='1' && ts[i+2]=='0' && ts[i+3]=='1') tts+='d';
		if(ts[i]=='1' && ts[i+1]=='1' && ts[i+2]=='1' && ts[i+3]=='0') tts+='e';
		if(ts[i]=='1' && ts[i+1]=='1' && ts[i+2]=='1' && ts[i+3]=='1') tts+='f';
	}
	bool flg=0;
	for(int i=0;i<tts.size();i++){
		if(tts[i]!='0' || flg){
			cout<<tts[i];
			flg=1;
		}
	}
	return 0;
}
2024/5/26 21:49
加载中...