#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
// Your logic here
int i = 0, rem;
if(base == 2) {
char bin[16];
if(num == 0) {
printf("0");
}
else {
while(num > 0) {
rem = num % 2;
bin[i] = '0' + rem;
i++;
num /= 2;
}
bin[i] = '\0';
for(int j = i - 1; j >= 0; j--)
printf("%c", bin[j]);
}
}
else if(base == 16){
int i = 0;
char hex[10];
if(num == 0) {
printf("0");
}
else {
while(num > 0) {
rem = num % 16;
if(rem < 10) {
hex[i] = '0' + rem;
}
else {
hex[i] = 'A' + (rem - 10);
}
i++;
num /= 16;
}
hex[i] = '\0';
for(int j = i -1; j >= 0; j--)
printf("%c", hex[j]);
}
}
}
int main() {
uint16_t num;
uint8_t base;
scanf("%hu %hhu", &num, &base);
print_base(num, base);
return 0;
}
Input
10 2
Expected Output
1010