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