Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Phupa

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

Language: cpp

Time: 0.003 second

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

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

int changebase(int base, string n){
    int l=n.size();
    int sum=0;
    
    for(int i=0; i<l; i++){
        int m;
        if(n[i]-'0' >= 0 && n[i]-'0'<=10) m=n[i]-'0';
        else if(n[i]-'A' >=0 && n[i]-'A'<=6) m=n[i]-'A'+10;
        sum += m*pow(base,l-i-1);
    }
    return sum;
}

string changeback(int base, int n){
    string sum;
    if(n==0) return "0";
    while(n!=0){
        if(n%base<10) sum+=to_string(n%base);
        else sum+=n%base-10+'A';
        n/=base;
    }
    return sum;
}

int main(){
    string n1;
    cin >> n1;
    int a = changebase(16,n1);

    string ansbase2 = changeback(2,a);
    reverse(ansbase2.begin(),ansbase2.end());
    string ansbase8 = changeback(8,a);
    reverse(ansbase8.begin(),ansbase8.end());
    cout << ansbase2 << endl << ansbase8;

    return 0;
}