#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
// Your logic here
char buffer[17]; // Enough for 16-bit binary + null terminator
int i = 0;
if (num == 0) {
printf("0\n");
return;
}
while (num > 0) {
uint8_t digit = num % base;
buffer[i++] = (digit < 10) ? ('0' + digit) : ('A' + digit - 10);
num /= base;
}
// Print in reverse order
for (int j = i - 1; j >= 0; j--) {
putchar(buffer[j]);
}
putchar('\n');
}
int main() {
uint16_t num;
uint8_t base;
scanf("%hu %hhu", &num, &base);
print_base(num, base);
return 0;
}num == 0, print "0" and returnchar buffer[] to store digits in reverse orderi = 0 to track buffer positionnum Becomes Zerodigit = num % basedigit < 10: '0' + digit'A' + digit - 10 (for hex digits)num = num / basei - 1 down to 0 and print each character
Input
10 2
Expected Output
1010