文章

246

粉丝

0

获赞

1156

访问

49.2k

头像
IP地址 题解:
P1023 贵州大学机试题
发布于2026年2月9日 10:57
阅读数 285

#include<iostream>
#include<algorithm>
using namespace std;

const int N=10;

string str;

bool check()
{
	int cnt=0,num=0;
	for(int i=0;i<str.size();i++)
	{
		if(str[i]=='.')
		{
			cnt++;
			if(num>255)
				return false;
			num=0;
		}
		else
		{
			if(str[i]<'0'||str[i]>'9')
				return false;
			int x=str[i]-'0';
			num=10*num+x;
		}
	}
	if(cnt!=3)
		return false;
	if(num>255)
		return false;
	return true;
}

void print(int x)
{
	string res;
	while(x)
	{
		int t=x%16;
		if(t<10)
			res.push_back('0'+t);
		else
			res.push_back('A'+t-10);
		x/=16;	
	}
	reverse(res.begin(),res.end());
	if(res.size()<2)
	{
		for(int i=0;i<2-res.size();i++)
			cout<<0;
	}
	for(int i=0;i<res.size();i++)
		cout<<res[i];
}

void work()
{
	int num=0;
	for(int i=0;i<str.size();i++)
	{
		if(str[i]=='.')
		{
			print(num);
			num=0;
		}
		else
		{
			int x=str[i]-'0';
			num=10*num+x;...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发