样例过了但是0分!有没有哪位大佬能说明是咋回事?
查看原帖
样例过了但是0分!有没有哪位大佬能说明是咋回事?
775551
caojiaming楼主2023/8/27 15:49
#include<bits/stdc++.h>
using namespace std; 
#define int unsigned long long
char c;
vector<int> num;
vector<string> s;
int t;
char d[17]="0123456789ABCDEF";
string tohex(int m)
{
	string res="";
	if(m==0) return "0";
	while(m!=0)
	{
		char p=d[m%16];
		res=p+res;
		m/=16;
	}
	return "0x"+res;
}
signed main()
{
	while(1)
	{
		scanf("%c",&c);
		if(c=='}') break;
		else if(c=='{') continue;
		else if(c==',')
		{
			num.push_back(t);
			t=0;
		}
		else
		{
			t*=10;
			t+=(int)(c-'0');
		}
	}
	num.push_back(t);
	for(int i=0;i<num.size();i++)
	{
		s.push_back(tohex(num[i]));
	}
	cout<<"{";
	for(int i=0;i<num.size()-1;i++)
	{
		if(to_string(num[i]).size()>s[i].size())
		{
			cout<<s[i]<<",";
		}
		else cout<<num[i]<<",";
	}
	if(to_string(num[num.size()-1]).size()>s[num.size()-1].size())
	{
		cout<<s[num.size()-1];
	}
	else
	{
		cout<<num[num.size()-1];
	}
	cout<<"}";
    return 0;
}

输入:

{1,314159,3141592653589793}

输出:

{1,314159,0xB29430A256D21}

预期:

{1,314159,0xB29430A256D21}
2023/8/27 15:49
加载中...