Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: winwin1054
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-27 13:40:30
#include <stdio.h>
#include <string.h>
int pow(int base,int expo) {
if(expo==0) return 1;
else return base * pow(16,expo-1);
}
int main() {
int number = 0,d;
char c[10];
scanf("%s",c);
d = strlen(c);
for(int i=0;i<d;i++) {
if(c[i]<65) number += (c[i]-'0') * pow(16,d-i-1);
else number += (c[i]-55) * pow(16,d-i-1);
}
int b[100],o[100],j=0,temp = number;
while(number>1) {
b[j] = number%2;
number -= b[j];
number = number/2;
j++;
}
b[j] = number;
for(int i=j;i>=0;i--) {
printf("%d",b[i]);
}
printf("\n");
j=0;
while(temp>7) {
o[j] = temp%8;
temp -= o[j];
temp = temp/8;
j++;
}
o[j] = temp;
for(int i=j;i>=0;i--) {
printf("%d",o[i]);
}
}