#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}