#include <stdio.h>
#include <stdint.h>
void print_hex(uint16_t num) {
// Your logic here
if(num == 0){
printf("0");
return;
}
char hex_digit[4];
int val = (num >> 12) & 0xF;
hex_digit[0] = (val < 10) ? ('0' + val) : ('A' + val - 10);
val = (num >> 8) & 0xF;
hex_digit[1] = (val < 10) ? ('0' + val) : ('A' + val - 10);
val = (num >> 4) & 0xF;
hex_digit[2] = (val < 10) ? ('0' + val) : ('A' + val - 10);
val = num & 0xF;
hex_digit[3] = (val < 10) ? ('0' + val) : ('A' + val - 10);
for(int i = 0; i < 4; i++){
if(hex_digit[i] != '0'){
printf("%c", hex_digit[i]);
}
}
}
int main() {
uint16_t num;
scanf("%hu", &num);
print_hex(num);
return 0;
}
Input
255
Expected Output
FF