Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: APNICHANAN

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-06 19:44:44

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    string n16;
    cin >> n16;
    int n10 = 0, n2[2000], n8[2000], temp, k;
    for (int i = 0; i < n16.length(); i++)
    {
        if (n16[i] >= '0' && n16[i] <= '9')
        {
            n10 += (n16[i] - '0') * pow(16, n16.length() - i - 1);
        }
        else if (n16[i] >= 'A' && n16[i] <= 'F')
        {
            n10 += (n16[i] - 55) * pow(16, n16.length() - i - 1);
        }
    }

    temp = n10;
    for (int i = 0;; i++)
    {
        k = i;
        n2[i] = n10 % 2;
        n10 -= n10 % 2;
        n10 /= 2;
        if (n10 == 0)
            break;
    }

    for (int i = k; i >= 0; i--)
    {
        cout << n2[i];
    }
    cout << endl;

    for (int i = 0;; i++)
    {
        k = i;
        n8[i] = temp % 8;
        temp -= temp % 8;
        temp /= 8;
        if (temp == 0)
            break;
    }

    for (int i = k; i >= 0; i--)
    {
        cout << n8[i];
    }
    cout << endl;
}