Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: eippy

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-13 10:11:23

#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main(){
    string s;
    char t[65];
    cin >> s;
    int dec = 0;
    for (int i=0; i<s.length(); i++){
        int value;
        if (s[i] >= '0' && s[i] <= '9'){
            value = s[i]-'0';
        } else if (s[i] >= 'A' && s[i] <= 'F'){
            value = s[i]-'A'+10;
        }
        int p = s.length()-1-i;
        dec += value * pow(16,p);
    }
    if (dec == 0){
        cout << 0 << endl << 0;
        return 0;
    }
    int ori = dec;
    int j=0;
    if (dec == 0) {
        t[j++] = '0';
    } else {
        while (dec > 0){
        t[j++] = dec%2 + '0';
        dec /= 2;
        }
    }
    t[j] = '\0';
    for (int i=0; i<j/2; i++){
        int temp = t[i];
        t[i] = t[j-i-1];
        t[j-i-1] = temp;
    }
    cout << t << endl;
    cout << oct << ori;
    return 0;
}