#include <stdio.h> #include <stdint.h> void print_hex(uint16_t num) { // Your logic here char str[4]; int count=0; if(num == 0) printf("0"); 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++; } } for(int j=0;j<count;j++){ printf("%c", str[count-j-1]); } } int main() { uint16_t num; scanf("%hu", &num); print_hex(num); return 0; }
Test Cases
Test Results
Input
255
Expected Output
FF