Submission
Status:
PPPPPP-PPP
Subtask/Task Score:
90/100
Score: 90
User: kimza
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-10 13:44:52
#include <iostream>
using namespace std;
int len(string str){
int count = 0;
for(int i=0;str[i]!='\0';i++){
count++;
}
return count;
}
int power(int n,int m){
int pownum = 1;
if(m==0){
return 1;
}
else{
for(int i=0;i<m;i++){
pownum*=n;
}
return pownum;
}
}
void bin(int n){
if(n == 0){
cout << 0;
}
int binary[32];
int i = 0;
while(n>0){
binary[i] = n%2;
n = n/2;
i++;
}
for(int j=i-1;j>=0;j--){
cout << binary[j];
}
cout << endl;
}
void oct(int n){
if(n == 0){
cout << 0;
}
int binary[32];
int i = 0;
while(n>0){
binary[i] = n%8;
n = n/8;
i++;
}
for(int j=i-1;j>=0;j--){
cout << binary[j];
}
}
int main()
{
string str;
cin >> str;
int sum=0;
int n = 0;
for(int i=0;i<len(str);i++){
if(str[i]>='0'&&str[i] <='9'){
str[i]-='0';
sum+=(int)str[i]*power(16,len(str)-i-1);
}
else if(str[i] >='A' && str[i] <='F'){
str[i] = str[i]-55;
sum+=(int)str[i]*power(16,len(str)-i-1);
}
}
bin(sum);
oct(sum);
}