#include <stdio.h> #include <stdint.h> void print_base(uint16_t num, uint8_t base) { // Your logic here if(base==2){ int flag = 0; for(int i=7;i>=0;i--){ int digit = (num>>i) & 1; if(digit==1) flag = 1; if(flag) printf("%d", digit); } if (!flag) printf("%d", 0); } else { int flag = 0; for(int i=3;i>=0;i--){ uint8_t digit = (num>>(4*i))&0xF; if(digit) flag = 1; if(flag){ char hex_digit = ((digit<10)?('0'+digit):(digit+'A'-10)); printf("%c",hex_digit); } } if (!flag) printf("%d", 0); } } 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