Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: kenmuay
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-12 23:40:32
#include <bits/stdc++.h>
using namespace std;
int changebase(int base, string n){
int l=n.size();
int sum=0;
for(int i=0; i<l; i++){
int m;
if(n[i]-'0' >= 0 && n[i]-'0'<=10) m=n[i]-'0';
else if(n[i]-'A' >=0 && n[i]-'A'<=6) m=n[i]-'A'+10;
sum += m*pow(base,l-i-1);
}
return sum;
}
string changeback(int base, int n){
string sum;
if(n==0) return "0";
while(n!=0){
if(n%base<10) sum+=to_string(n%base);
else sum+=n%base-10+'A';
n/=base;
}
return sum;
}
int main(){
string n1;
cin >> n1;
int a = changebase(16,n1);
string ansbase2 = changeback(2,a);
reverse(ansbase2.begin(),ansbase2.end());
string ansbase8 = changeback(8,a);
reverse(ansbase8.begin(),ansbase8.end());
cout << ansbase2 << endl << ansbase8;
return 0;
}