只有90,求大佬指点迷津
查看原帖
只有90,求大佬指点迷津
1106976
fankejing楼主2023/12/6 15:25
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    ll n,num=0;
    char bm1='0',bm2='0';
    string s;
    cin>>n;
    while(n>=1){
        s.push_back(n%2+'0');
        n /= 2;
        num++;
        if(num == 7){
            int tmp1 = (8+(s[6]-'0')*4+(s[5]-'0')*2+(s[4]-'0'));
            if(tmp1>9)
                bm1 = char(tmp1 +'A'-10);
            else
                bm1 = char(tmp1+'0');
            cout<<bm1;
            int tmp2 = ((s[3]-'0')*8+(s[2]-'0')*4+(s[1]-'0')*2+(s[0]-'0'));
            if(tmp2>9){
                bm2 = char(tmp2 +'A'-10);
            }
            else
                bm2 = char(tmp2+'0');
            cout<<bm2<<" ";
            s = "";
            num = 0;
        }
        else if(num ==6 && (n==1||n==0)){
            int tmp1 = (s[6]-'0')*4+(s[5]-'0')*2+(s[4]-'0');
            if(tmp1>9)
                bm1 = char(tmp1 +'A'-10);
            else
                bm1 = char(tmp1+'0');
            int tmp2 = (s[3]-'0')*8+(s[2]-'0')*4+(s[1]-'0')*2+(s[0]-'0');
            if(tmp2>9)
                bm2 = char(tmp2 +'A'-10);
            else
                bm2 = char(tmp2+'0');
            s = "";
            num = 0;
        }
    }
    if(s.size()>=1){
        ll tmp = s.length();
        int ans=0;
        if(s.size()<=4){
            for(ll i=tmp-1;i>=0;i--){
                ans += (s[i]-'0')*pow(2,i);
            }
            if(ans>9)
                bm2 = char(ans +'A'-10);
            else
                bm2 = char(ans+'0');
            bm1 = '0';
        }
        else{
            for(ll i=tmp-1;i>=tmp-4;i--){
                ans += (s[i]-'0')*pow(2,i);
                if(ans>9)
                    bm2 = char(ans +'A'-10);
                else
                    bm2 = char(ans+'0');
            }
            ans = 0;
            for(ll i =tmp-5;i>=0;i--){
                ans += (s[i]-'0')*pow(2,i);
                if(ans>9)
                    bm2 = char(ans +'A'-10);
                else
                    bm2 = char(ans+'0');
            }
        }
            
    }
    cout<<bm1<<bm2<<' ';
    //printf("%c%c",bm1,bm2);
    return 0;
}
2023/12/6 15:25
加载中...