感觉没有问题,但是前四个点全错,只有空序列的那个对了,有没有大佬帮忙看看
#include<bits/stdc++.h>
#define MAXN 1010
using namespace std;
typedef unsigned long long ll;
int n;
char in[MAXN*50];
ll num[MAXN];
void turn_hex(ll x){
int len=0;
}
void solve(ll x){
int len_oct=0,len_hex=0;
char hex[50];
ll tmp=x;
while(tmp){
int r=tmp%16;
if(r<10){
hex[++len_hex]=r+'0';
}else{
hex[++len_hex]=r-10+'A';
}
tmp/=16;
}
tmp=x;
while(tmp) tmp/=10,len_oct++;
if(len_oct<=len_hex+2){
printf("%llu",x);
}else{
printf("0x");
for(int i=len_hex;i>=1;i--){
printf("%c",hex[i]);
}
}
}
int main(){
scanf("%s",in+1);
int len=strlen(in+1);
for(int i=1;i<=len;i++){
if(isdigit(in[i])) n++;
while(isdigit(in[i])){
num[n]=num[n]*10+in[i]-'0';
i++;
}
}
putchar('{');
for(int i=1;i<=n;i++){
solve(num[i]);
if(i<n) printf(",");
}
putchar('}');
return 0;
}