1 条题解

  • 0
    @ 2024-12-29 20:12:03
    #include <bits/stdc++.h>
    using namespace std;
    
    string a;
    int n;
    //找到字符串中最大的数字
    int zfm(string s)
    {
        int ma = 0,t;
        for(int i = 0; i < s.size();i++)
        {
            //将字符转化为数字 字母字符 A - 10
            //数字字符保持原来大小 1 - 1
            if(isalpha(s[i]) )t = s[i] -55;
            else t = s[i] - 48;
            
            ma = max(ma,t);
        }
        return ma;
    }
    //根据最大字符来判断进制
    void pd(int x)
    {
        //n进制的数字会小于n 10进制 内所有数字小于10
        if(x > 15)cout<<"0 0 0 0"<<endl;
        else if(x >= 10 )cout<<"0 0 0 1"<<endl;//比10进制更大的进制 16
        else if(x >= 8 )cout<<"0 0 1 1"<<endl;//比8进制更大的进制 10 16
        else if(x >= 2 )cout<<"0 1 1 1"<<endl;//比2进制更大的进制8 10 16
        else cout<<"1 1 1 1"<<endl;//比2小出现可以是所有进制
    }
    
    int main()
    {
        cin>>n;
        while(n--)
        {
            cin>>a;
            pd(zfm(a));
        }
       
        
    }
    

    信息

    ID
    4884
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    12
    已通过
    6
    上传者