Submission
Status:
-P-P----PP
Subtask/Task Score:
40/100
Score: 40
User: koon
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.003 second
Submitted On: 2025-11-08 20:50:50
#include <bits/stdc++.h>
using namespace std;
string int_base(int num, int base) {
string s = "";
while (num > base) {
s += (num%base) + '0';
num = (num-(num%base))/base;
}
s += (num%base) + '0';
reverse(s.begin(), s.end());
return s;
}
int main() {
string s;
cin >> s;
map<char, int> num = {{'0', 0}, {'1', 1}, {'2', 2}, {'3', 3}, {'4', 4}, {'5', 5}, {'6', 6}, {'7', 7}, {'8', 8}, {'9', 9}, {'A', 10}, {'B', 11}, {'C', 12}, {'D', 13}, {'E', 14}, {'F', 15}};
reverse(s.begin(), s.end());
int sum = 0;
for (int i = 0; i < (int)s.size(); i++) {
sum += pow(16, i)*num[s[i]];
}
cout << int_base(sum, 2) << "\n" << int_base(sum, 8);
return 0;
}