#include <stdio.h>
#include <stdint.h>
#include <cstdlib>
void print_binary(uint16_t val) {
// Your logic here
int n=0;
char *ret=nullptr;
if (val <= 255) {
n = 8;
ret = (char *)malloc(n*sizeof(char));
for(int i=0; i<n; i++) {
if((val & 1)) {
ret[n-1-i] = '1';
} else {
ret[n-1-i] = '0';
}
val >>= 1;
}
} else {
n = 16;
ret = (char *)malloc(16*sizeof(char));
for(int i=0; i<n; i++) {
if((val & 1)) {
ret[n-1-i] = '1';
} else {
ret[n-1-i] = '0';
}
val >>= 1;
}
}
for(int i=0; i<n; i++) {
printf("%c", ret[i]);
}
return;
}
int main() {
uint16_t val;
scanf("%hu", &val);
print_binary(val);
return 0;
}
Input
10
Expected Output
00001010