Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Apimuk

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-09-19 23:32:08

#include <iostream>
#include <stack>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
int main() {
    string txt;
    cin >> txt;
    int num = 0;
    int power = 1;
    int size = txt.length();
    for (int i = 0;i < txt.length();i++) {
        
        if (txt[size-1-i] == 'A') {
            num = num + (10 * power);

        }
        if (txt[size - 1 - i] == 'B') {
            num = num + (11 * power);

        }
        if (txt[size - 1 - i] == 'C') {
            num = num + (12 * power);

        }
        if (txt[size - 1 - i] == 'D') {
            num = num + (13 * power);

        }
        if (txt[size - 1 - i] == 'E') {
            num = num + (14 * power);

        }
        if (txt[size - 1 - i] == 'F') {
            num = num + (15 * power);

        }
        if (txt[size - 1 - i] != 'A' && txt[size - 1 - i] != 'B' && txt[size - 1 - i] != 'C' && txt[size - 1 - i] != 'D' && txt[size - 1 - i] != 'E' && txt[size - 1 - i] != 'F') {
            num = num + ((txt[size - 1 - i] - '0') * power);
        }
        power = power * 16;
    }
    vector<string> base2;
    int dived = 0;
    int tempbase2 = num;
    while (tempbase2 != 0) {
        dived = tempbase2 % 2;
        tempbase2 = tempbase2 / 2;
        base2.push_back(to_string(dived));
    }
    for (int i = 1; i <= base2.size(); i++) {
        cout << base2[base2.size() - i];
    }
    cout << endl;
    vector<string> base8;
    dived = 0;
    int tempbase8 = num;
    while (tempbase8 != 0) {
        dived = tempbase8 % 8;
        tempbase8 = tempbase8 / 8;
        base8.push_back(to_string(dived));
    }
    for (int i = 1; i <= base8.size(); i++) {
        cout << base8[base8.size() - i];
    }
}