Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Neozaawwman1

Problemset: แปลงเลขฐาน

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-07 21:02:14

#include <bits/stdc++.h>
using namespace std;
int change(string num, int base){
	int sum=0;
	for(int i=0; i<num.length(); i++){
		int hex;
		if(num[i]>='A' && num[i]<='Z'){
			hex = num[i]-'A'+10;
		}else{
			hex = num[i]-'0';
		}
		sum=sum+hex*pow(base,num.length()-i-1);
	}
	return sum;
}
void output(int num, int base){
	vector<char> arr;
	while(num!=0){
		int ans=num%base;
		char hex;
		if(ans>=10){
			hex = ans-10+'A';
		}else{
			hex = ans+'0';
		}
		num=num/base;
		arr.push_back(hex);
	}
	for(int i=arr.size()-1; i>=0; i--){
		cout<<arr[i];
	}
	cout<<endl;
}
int main(){
	string num; cin>>num;
	int sum = change(num, 16);
	output(sum, 2);
	output(sum, 8);
	return 0;
}