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