#include <stdio.h> #include <stdint.h> void print_hex(uint16_t num) { // Your logic here char buffer[5] = {0}; uint16_t remainder; buffer[4] = '\0'; int i = 3; if(num == 0) { printf("0"); return; } while(num > 0 && i >= 0) { remainder = num & 0x0F; //num % 16 buffer[i--] = remainder < 10 ? remainder + '0' :remainder -10 + 'A'; num >>= 4; //num /=16 } printf("%s",&buffer[i+1]); } int main() { uint16_t num; scanf("%hu", &num); print_hex(num); return 0; }
Test Cases
Test Results
Input
255
Expected Output
FF