第10个点错了,大佬求调
查看原帖
第10个点错了,大佬求调
939658
Rqc666楼主2025/7/19 12:17
#include<bits/stdc++.h>
#define ll long long
using namespace std;
string s,s1;
int main() {
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin >> s; int k = 0,p = 0,q = 0;
	for(int i = 0;i<s.size();i++) {
		if((s[i] >= '0' && s[i] <= '9') || (s[i] >= 'A' && s[i] <= 'F')) k++;
		if(s[i] == ':') {
			if(s[i + 1] == ':') {
				for(int j = 0;j<s.size();j++) if(s[j] == ':') q++;
				// if(i + 1 == 1 || i + 1 == s.size()) q--;
				for(int j = 1;j<=4 - k;j++) s1 += '0';
				for(int j = i - 4;j<=i;j++) s1 += s[j];
				for(int w = 1;w<=8 - q;w++) {
					for(int j = 1;j<=4;j++) s1 += '0';
					s1 += ':';
				}
				i++; k = 0;
			} else {
				for(int j = 1;j<=4 - k;j++) s1 += '0';
				for(int j = i - k;j<=i;j++) s1 += s[j];
				k = 0;
			}
		}
	}
	if(s[s.size() + 1] == ':') {
		for(int j = 1;j<=4 - k;j++) s1 += '0';
		for(int j = s.size() - 4;j<=s.size();j++) s1 += s[j];
		for(int j = 1;j<=4;j++) s1 += '0';
	} else {
		for(int j = 1;j<=4 - k;j++) s1 += '0';
		for(int j = s.size() - k;j<=s.size();j++) s1 += s[j];
		k = 0;
	}
//	cout<<s1<<"\n";
	for(int i = 0;i < s1.size();i++) {
		if(s1[i] == '0') cout<<"0000";
		else if(s1[i] == '1') cout<<"0001";
		else if(s1[i] == '2') cout<<"0010";
		else if(s1[i] == '3') cout<<"0011";
		else if(s1[i] == '4') cout<<"0100";
		else if(s1[i] == '5') cout<<"0101";
		else if(s1[i] == '6') cout<<"0110";
		else if(s1[i] == '7') cout<<"0111";
		else if(s1[i] == '8') cout<<"1000";
		else if(s1[i] == '9') cout<<"1001";
		else if(s1[i] == 'A') cout<<"1010";
		else if(s1[i] == 'B') cout<<"1011";
		else if(s1[i] == 'C') cout<<"1100";
		else if(s1[i] == 'D') cout<<"1101";
		else if(s1[i] == 'E') cout<<"1110";
		else if(s1[i] == 'F') cout<<"1111";
	}
	return 0;
}
2025/7/19 12:17
加载中...