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;
}