Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: tha_smith
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-12 15:58:58
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string s;
cin >> s;
int si = s.size();
int n[si];
for(int i=0; i<si; i++) {
if(s[i]=='A') {
n[i] = 10;
}
else if(s[i]=='B') {
n[i] = 11;
}
else if(s[i]=='C') {
n[i] = 12;
}
else if(s[i]=='D') {
n[i] = 13;
}
else if(s[i]=='E') {
n[i] = 14;
}
else if(s[i]=='F') {
n[i] = 15;
}
else {
n[i] = s[i]-'0';
}
}
int sum=0,base=1,p=0;
for(int i=si-1; i>=0; i--) {
//cout << n[i] << endl;
for(int j=0; j<p; j++) {
base*=16;
}
//cout << base << " " << base*n[i];
sum += (base*n[i]);
base = 1;
p++;
}
//cout << sum;
int sum1=sum,sum2=sum;
int n1[16],n2[16];
memset(n1,-1,sizeof(n1));
memset(n2,-1,sizeof(n2));
int j1=15,j2=15;
while(sum1>0) {
n1[j1] = sum1%2;
sum1/=2;
j1--;
}
while(sum2>0) {
n2[j2] = sum2%8;
//cout << n2[j2] << endl;
sum2/=8;
j2--;
}
for(int i=0; i<16; i++) {
if(n1[i]!=-1) {
cout << n1[i];
}
}
cout << endl;
for(int i=0; i<16; i++) {
if(n2[i]!=-1) {
cout << n2[i];
}
}
}