Submission

Status:

-P-P----PP

Subtask/Task Score:

40/100

Score: 40

User: koon

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-11-08 20:50:50

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

string int_base(int num, int base) {
    string s = "";
    while (num > base) {
        s += (num%base) + '0';
        num = (num-(num%base))/base;
    }
    s += (num%base) + '0';
    reverse(s.begin(), s.end());
    return s;
}

int main() {
    string s;
    cin >> s;
    map<char, int> num = {{'0', 0}, {'1', 1}, {'2', 2}, {'3', 3}, {'4', 4}, {'5', 5}, {'6', 6}, {'7', 7}, {'8', 8}, {'9', 9}, {'A', 10}, {'B', 11}, {'C', 12}, {'D', 13}, {'E', 14}, {'F', 15}};
    reverse(s.begin(), s.end());
    int sum = 0;
    for (int i = 0; i < (int)s.size(); i++) {
        sum += pow(16, i)*num[s[i]];
    }
    cout << int_base(sum, 2) << "\n" << int_base(sum, 8);
    return 0;
}