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;
	
}