Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: ztmy_

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-13 20:37:49

#include <iostream>
using namespace std;

int toDecimal(string a){
    int power = 1;
    int ans = 0;
    for (int i = a.length()-1; i >= 0; i--){
        int digit = 0;
        if (a[i] >= '0' && a[i] <= '9') digit = a[i] - '0';
        if (a[i] >= 'A' && a[i] <= 'F') digit = a[i] - 'A' + 10;
        ans += digit*power;
        power *= 16;
    }
    return ans;
}

string fromDecimal(int n, int base){
    string s = "0123456789";
    string ans = "";
    while (n != 0){
        ans = s[n%base] + ans;
        n /= base;
    }
    return ans;
}

int main(){
    string n;
    cin >> n;
    int decimal = toDecimal(n);
    string basetwo = fromDecimal(decimal, 2);
    string baseeight = fromDecimal(decimal, 8);
    cout << basetwo << endl;
    cout << baseeight;
}