Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: patsa_v
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-05 09:59:57
#include <bits/stdc++.h>
using namespace std;
string tobase_ten(string a){
int n = a.length();
long long int sum = 0;
vector<char> v = {'A','B','C','D','E','F'};
for(int i=0;i<n;i++){
int temp = a[n-i-1] - '0';
if(find(v.begin(),v.end(),a[n-i-1]) != v.end()){
temp -= 7;
}
sum = sum + pow(16,i) * temp;
}
return to_string(sum);
}
string tobase_eight(string a){
int n = stoi(a);
string ans = "";
while(n>0){
ans = to_string(n%8) + ans;
n = n/8;
}
// for(int i=0;i<ans.length()/2;i++){
// swap(ans[i],ans[ans.length()-1-i]);
// }
return ans;
}
string tobase_two(string a){
int n = stoi(a);
string ans = "";
while(n>0){
ans = to_string(n%2) + ans;
n = n/2;
}
// for(int i=0;i<ans.length()/2;i++){
// swap(ans[i],ans[ans.length()-1-i]);
// }
return ans;
}
int main(){
string s;
cin >> s;
// cout << tobase_ten(s) << "\n";
cout << tobase_two(tobase_ten(s)) <<"\n";
cout << tobase_eight(tobase_ten(s));
return 0;
}