Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: bestisyis...programming
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.005 second
Submitted On: 2026-10-07 11:30:52
#include <iostream>
#include <cmath>
#include <algorithm>
#include <string>
using namespace std;
int tobase10(string x){
int sum=0;
reverse(x.begin(),x.end());
for(int i=0;i<x.length();i++){
if(x[i]>='0' && x[i]<='9'){
sum+=(x[i]-'0')*pow(16,i);
}
else{
x[i] = x[i]-'A'+10;
sum+=x[i]*pow(16,i);
}
}
return sum;
}
string tentobase2(int x){
string b2 = "";
do{
b2+=(char)(x%2 + '0');
x = x/2;
}while(x);
reverse(b2.begin(),b2.end());
return b2;
}
string tentobase8(int x){
string b8 = "";
do{
b8+=(char)(x%8 + '0');
x = x/8;
}while(x);
reverse(b8.begin(),b8.end());
return b8;
}
int main(){
string b16;
cin >> b16;
cout << tentobase2(tobase10(b16)) << endl;
cout << tentobase8(tobase10(b16)) << endl;
}