Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: erng

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-02 21:52:19

#include <iostream>
#include <string>
#include <stack>
using namespace std;

int val, n=1, s, j, k;
string num;
stack<int> a, b;

int main()
{
    cin>>num;
    for (int i=num.size()-1; i>=0;i--)
    {
        if (num[i]>='A' && num[i]<='Z')
        {
            val=val+n*(num[i]-55);
            n=n*16;
        }
        else
        {
            val=val+(num[i]-'0')*n;
            n=n*16;
        }
    }
    s=val;
    k=val;
    while (k>0)
    {
        j=k%2;
        b.push(j);
        k=(k-j)/2;
    }
    while(!b.empty())
    {
        cout<<b.top();
        b.pop();
    }
    cout<<'\n';
    while (s>0)
    {
        j=s%8;
        a.push(j);
        s=(s-j)/8;
    }
    while(!a.empty())
    {
        cout<<a.top();
        a.pop();
    }
}