C++60分求助
查看原帖
C++60分求助
663693
chenjieyang楼主2022/9/10 16:14
#include<iostream>
#include<string>
#include<cstring>
#include<iomanip>
#include<algorithm>
#include<cmath>
#define ll long long
#define mod 998244353
using namespace std;
string s,s1[10000];
ll n;
char c,c1;
char atoi(long long a){
    if(a>9)return a-10+'A';
    else return a+'0';
}
int main(){
    while(cin>>c){
        if(c=='{')cout<<c;
        if(c>='0'&&c<='9'){
            n*=10;
            n+=c-'0';
        }
        if(c==','||c=='}'){
            if(c1=='{'){cout<<c;break;}
            ll n1=n;
            for(int i=0;n1>0;i++){
                s+=atoi(n1%16);
                n1/=16;
            }
            reverse(s.begin(),s.end());
            ll lena=s.size()+2,lenb=0,t=n;
            while(t>0){
                t/=10;
                lenb++;
            }
            if(lena<=lenb)cout<<"0x"<<s<<c;
            else cout<<n<<c;
            n=0;
            s="";
        }
        c1=c;
    }
    return 0;
}
2022/9/10 16:14
加载中...