Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: eefirefire
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2026-09-20 14:16:08
#include <bits/stdc++.h>
using namespace std;
// https://grader.gchan.moe/problemset/c1_bkk66_2
int main(){
string s;cin>>s;
// Convert 16b -> 10b
int base_ten = 0;
string b2;
string b8;
for(int i=0;i<s.length();i++){
if(isdigit(s[i])){
base_ten *= 16;
base_ten += s[i] - '0';
}
else{
base_ten *= 16;
base_ten += s[i] - 'A' + 10;
}
}
int base_ten2 = base_ten;
// Convert b10 -> b2
while (base_ten > 0) {
b2.push_back(base_ten % 2 + '0');
base_ten /= 2;
}
// Convert b10 -> b8
while (base_ten2 > 0) {
b8.push_back(base_ten2 % 8 + '0');
base_ten2 /= 8;
}
reverse(b2.begin(), b2.end());
reverse(b8.begin(), b8.end());
cout << b2 << "\n" << b8;
}