Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Quaoar
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-10 19:05:19
#include <stdio.h>
int pw(int a , int b){
int product = a;
if (b == 0){
return 1;
}
for (int i = 0 ; i < b - 1; i++){
product = product * a;
}
return product;
}
int main() {
int base = 16;
char str[20];
scanf("%s" , str);
int i = 0;
int len;
while (str[i] != '\0'){
i++;
len = i;
}
int sum = 0;
for (int i = 0 ; i < len ; i++){
if (str[i] - '0' > 9){
sum += (str[i] - '0' - 7) * pw(base , len - 1 -i);
} else {
sum += (str[i] - '0') * pw(base , len - 1 - i);
}
}
int base2[20];
int dec = sum;
int cnt2;
for (int i = 0 ; i < 20 ; i++){
base2[i] = dec % 2;
dec = dec / 2;
if (dec == 0){
cnt2 = i;
break;
}
}
for (int i = 0 ; i < cnt2 + 1; i++){
printf("%d" , base2[cnt2 - i ]);
}
printf("\n");
int base8[20];
dec = sum;
for (int i = 0 ; i < 20 ; i++){
base8[i] = dec % 8;
dec = dec / 8;
if (dec == 0){
cnt2 = i;
break;
}
}
for (int i = 0 ; i < cnt2 + 1; i++){
printf("%d" , base8[cnt2 - i ]);
}
return 0;
}