Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: 2628
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-12 22:55:53
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin >> s;
int n = s.size();
int t10 = 0,l = n-1;
for(int i = 0;i < n;i++){
if(s[i] >= '0' && s[i] <= '9'){
t10 += (s[i] - 48)*pow(16,l);
}
else{
if(s[i] == 'A'){
t10 += 10*pow(16,l);
}
else if(s[i] == 'B'){
t10 += 11*pow(16,l);
}
else if(s[i] == 'C'){
t10 += 12*pow(16,l);
}
else if(s[i] == 'D'){
t10 += 13*pow(16,l);
}
else if(s[i] == 'E'){
t10 += 14*pow(16,l);
}
else if(s[i] == 'F'){
t10 += 15*pow(16,l);
}
}
l = l - 1;
}
int t2 = t10;
int t8 = t10;
//int n2 = t10.size();
vector<int> ar2;
vector<int> ar8;
while(t2 != 0){
ar2.push_back(t2%2);
t2 = t2/2;
}
cout << endl;
while(t8 != 0){
ar8.push_back(t8%8);
t8 = t8/8;
}
for(int i = ar2.size()-1 ;i >= 0;i--){
cout <<ar2[i];
}
cout << endl;
for(int i = ar8.size() -1;i >= 0;i--){
cout <<ar8[i];
}
return 0;
}