#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
// Your logic here
int count=0;
char str[8];
if(num == 0)
printf("0");
if (base == 16){
for(int i=0;(num >> 4*i)>0;i++){
if(((num >> 4*i) & 0xF) >= 0 && ((num >> 4*i) & 0xF) <= 9){
str[i] = ((num >> 4*i) & 0xF) + '0';
count++;
}
else if(((num >> 4*i) & 0xF) >= 10 && ((num >> 4*i) & 0xF) <= 15){
str[i] = ((num >> 4*i) & 0xF) + 'A' - 10;
count++;
}
}
}
else if (base == 2){
for(int i=0;(num >> i)>0;i++){
str[i] = ((num >> i) & 1) + '0';
count++;
}
}
for(int j=0;j<count;j++)
printf("%c", str[count-j-1]);
}
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