#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base){
if(num == 0)
{
printf("0");
return;
}
char digits[17] = "0123456789ABCDEF";
char res[20];
int i = 0;
while(num>0)
{
res[i++] = digits[num%base];
num /= base;
}
// res[i] = '\0';
// printf("%s\n", res);
for(int j=i-1; j>=0; j--)
{
// putchar(res[j]);
printf("%c", res[j]);
}
}
// void print_base(uint16_t num, uint8_t base) {
// // Your logic here
// if(base == 2)
// {
// int temp = 0;
// uint16_t num1 = num;
// for(int i=0; i<=15; i++)
// {
// num1 = num1/2;
// temp++;
// if(num1 == 0)
// {
// break;
// }
// }
// // printf("%d\n",temp);
// for(int i=temp-1; i>=0; i--)
// {
// printf("%d", (num>>i)&0x1);
// }
// }
// if(base == 16)
// {
// int temp = 0;
// uint16_t num1 = num;
// for(int i=0; i<=13; i++)
// {
// num1 = num1/16;
// temp++;
// if(num1 == 0)
// {
// break;
// }
// }
// // printf("%d\n",temp);
// for(int i=temp-1; i>=0; i--)
// {
// char c;
// uint8_t tem = (num>>(4*i) & 0xF);
// if(tem>=10)
// {
// c = (tem-10+'A');
// }
// else
// {
// c = tem + '0';
// }
// // num = num/16;
// printf("%c", c);
// }
// }
// }
int main() {
uint16_t num;
uint8_t base;
scanf("%hu %hhu", &num, &base);
print_base(num, base);
return 0;
}
Input
10 2
Expected Output
1010