Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: patsa_v

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

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-05 09:59:57

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


string tobase_ten(string a){
    int n = a.length();
    long long int sum = 0;
    vector<char> v = {'A','B','C','D','E','F'};

    for(int i=0;i<n;i++){
        int temp = a[n-i-1] - '0';
        if(find(v.begin(),v.end(),a[n-i-1]) != v.end()){
            temp -= 7;
        }
        sum = sum + pow(16,i) * temp;
    }

    return to_string(sum);
}  


string tobase_eight(string a){
    int n = stoi(a);
    string ans = "";
    while(n>0){
        ans = to_string(n%8) + ans;
        n = n/8;
    }

    // for(int i=0;i<ans.length()/2;i++){
    //     swap(ans[i],ans[ans.length()-1-i]);
    // }
    
    return ans;
}

string tobase_two(string a){
    int n = stoi(a);
    string ans = "";
    while(n>0){
        ans = to_string(n%2) + ans;
        n = n/2;
    }

    // for(int i=0;i<ans.length()/2;i++){
    //     swap(ans[i],ans[ans.length()-1-i]);
    // }
    
    return ans;
}

int main(){
    string s;
    cin >> s;

    // cout << tobase_ten(s) << "\n";
    cout << tobase_two(tobase_ten(s)) <<"\n";
    cout << tobase_eight(tobase_ten(s));
    return 0;
}