#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
// Your logic here
if(base == 2) {
// BIN
int flag = 0;
for(int i = 7; i >= 0 ; i--) {
int digit = (num >> i) & 1;
if(digit == 1) flag = 1;
if(flag) printf("%d", digit);
}
if (!flag) printf("%d", 0);
} else {
// HEX
int flag = 0;
for(int i = 3; i >= 0 ; i--) {
uint8_t digit = (num >> (i * 4)) & 0xF;
if(digit) flag = 1;
if(flag) {
char hex_digit = (digit < 10) ? ('0' + digit) : ('A' + digit - 10);
printf("%c", hex_digit);
}
}
if (!flag) printf("%d", 0);
}
}
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