#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
// Your logic here
char buff[20];
int buff_idx = 0;
// zero edge case
if(num == 0) {
printf("0");
return;
}
while(num > 0 ) {
int digit = num % base;
char digit_str;
// base 16
if (base == 16) {
if(digit >= 10) {
digit_str = 'A' + (digit - 10);
} else {
digit_str = '0' + digit;
}
buff[buff_idx++] = digit_str;
}
// base 2
if(base == 2) {
buff[buff_idx++] = '0' + digit;
}
num = num / base;
}
buff_idx--;
while(buff_idx >= 0) {
printf("%c", buff[buff_idx--]);
}
}
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