Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Trin1506

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-09 18:53:59

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

int main() {
    string word, bi, rev,rev8;
    string eight;
    cin >> word;
    unsigned long long num = 0;
    unsigned long long power = 1;
    for (int i = word.size() - 1; i >= 0; i--) {
        int value;
        if (word[i] >= 'A' && word[i] <= 'F') value = word[i] - 'A' + 10;
        else value = word[i] - '0';
        num += value * power;
        power *= 16;
    }
    int num1 = num;

    if (num == 0) { cout << 0 << '\n'<<0; return 0; }
    while (num > 0) {
        bi += (num % 2) + '0';
        num /= 2;
    }
    for (int i = 0; i < bi.size(); i++)
        rev += bi[bi.size() - 1 - i];
    while(num1>0){
        eight+=(num1%8) +'0';
        num1/=8;
    }
    for(int i=0;i<eight.size();i++)rev8+=eight[eight.size()-1-i];
    cout << rev <<'\n' << rev8;
}