Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: karnsinee

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-09-29 20:31:35

#include<bits/stdc++.h>
#include<string.h>
using namespace std;
int main (){
	char str[100];
	int n;
	scanf("%s",str);
	n=strlen(str);
	for(int i=0;i<n;i++){
		if(str[i]>=48&&str[i]<=57){
			str[i]=str[i]-48;
		}
		else if(str[i]>=65&&str[i]<=71){
			str[i]=str[i]-55;
		}
		
	}
	
	for(int i=0;i<n;i++){
	//	printf("%d ",str[i]);
	}
	
	int sum;
	sum=0;
	for(int i=0;i<n;i++){
		sum=sum+(str[n-i-1]*pow(16,(i)));
	}
	//cout<<sum;
	int sum1;
	sum1=sum;
	
	int r,ans[100];
	r=0;
	while(sum>0){
		ans[r]=sum%2;
		sum=sum/2;
		//printf("%d %d \n",sum,r);
		r++;
	}
	//cout<<r<<"\n";
	for(int i=1;i<=r;i++){
		cout<<ans[r-i];
	}
	
	cout<<"\n";
	
	int s,ans2[100];
	s=0;
	while(sum1>0){
		ans2[s]=sum1%8;
		sum1=sum1/8;
		//printf("%d %d \n",sum1,s);
		s++;
	}
	//cout<<s<<"\n";
	for(int i=1;i<=s;i++){
		cout<<ans2[s-i];
	}

}