Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: onlyme910

Problemset: แปลงเลขฐาน

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-08 20:22:49

#include <bits/stdc++.h>
using namespace std;

int basetodec(int base, string s) {
    int dec = 0, digit, l = s.length();
    for (int i = 0; i < l; i++) {
        char cur = s[l-i-1];
        if (cur <= '9' && cur >= '0') digit = cur - '0';
        else digit = cur - 'A' + 10;
        dec += digit * pow(base, i);
    }
    return dec;
}

void dectobase(int base,int n){
    string r = "";
    char k;
    while(n > 0){
        if(n%base < 10)k = (n%base)+'0';
        else k = (n%base)-10+'A';
        r += k;
        n /= base;
    }
    reverse(r.begin(), r.end());
    cout << r << endl;
}

int main(){
    string s;cin >> s;
    int dec = basetodec(16,s);
    dectobase(2,dec);
    dectobase(8,dec);
}