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]);
	}
}