2 条题解

  • 0
    @ 2026-5-1 11:19:59
    #define LL long long
    using namespace std;
    vector<string> res;
    void encode(LL n){
        if(n == 0){
            res.push_back("00");
            return;
        }
        vector<int> bits;
        while(n){
            bits.push_back(n % 2);
            n /= 2;
        }
        int len = bits.size();
        for(int i=0;i<((7 - len % 7) % 7);i++){
            bits.push_back(0);
        }
        int groups = bits.size() / 7;
        for(int i=0;i<groups;i++){
            int val = 0;
            for(int j=0;j<7;j++){
                val += bits[i*7 + j] * (1 << j);
            }
            if(i != groups - 1){
                val += 128;
            }
            char hex[3];
            sprintf(hex, "%02X", val);
            res.push_back(hex);
        }
    }
    int main(){
        LL n;
        cin>>n;
        encode(n);
        for(int i=0;i<res.size();i++){
            if(i > 0) cout<<" ";
            cout<<res[i];
        }
        cout<<endl;
        return 0;
    }
    //:)
    //114514
    
    

    信息

    ID
    3349
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    33
    已通过
    13
    上传者