Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: FIrmTInn

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-11 22:38:30

#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main(){
    long long sum = 0;
    string str;
    cin >> str;
    int n = str.length(),m,count1 = 0,count2 = 0;
    int val,arr1[20],arr2[20];
    for(int i=0;i<n;i++){
        if(str[i] >= '0' && str[i] <= '9'){
            val = str[i] - '0';
        }
        else if(str[i]>='A' && str[i] <='F'){
            val = (str[i] - 'A') + 10;
        }
        else if(str[i]>='a' && str[i] <='f'){
            val = (str[i] - 'a') + 10;
        }
        else{
            return 0;
        }
        sum += val*pow(16,n-1-i);
    }
    for(int i=sum;i>0;i/=2){
        m = i%2;
        arr1[count1] = m;
        count1++;
    }
    for(int i=sum;i>0;i/=8){
        m = i%8;
        arr2[count2] = m;
        count2++;
    }
    for(int i=count1-1;i>=0;i--){
        cout << arr1[i];
    }
    cout << "\n";
    for(int i=count2-1;i>=0;i--){
        cout << arr2[i];
    }
    return 0;
}