#include <stdio.h> #include <stdint.h> #include <math.h> void print_base(uint16_t num, uint8_t base) { // Your logic here if (num == 0) { printf("0"); } else { int bits_2 = log2(num); int bits_16 = bits_2 / 4; if (base == 2) { for (int i = bits_2; i >= 0; i--) { printf("%u", (num >> i) & 1); } } else if (base == 16) { for (int i = bits_16; i >= 0; i--) { printf("%X", (num >> (4 * i)) & 0xF); } } } } int main() { uint16_t num; uint8_t base; scanf("%hu %hhu", &num, &base); print_base(num, base); return 0; }
Test Cases
Test Results
Input
10 2
Expected Output
1010