程序代码:
#include <stdio.h>
#include <stdlib.h>
char * dec_to_x_string(int, int);
int get_digits(int, int);
int main(void) {
int dec, x;
scanf("%d%d", &dec, &x);
char * str = dec_to_x_string(dec, x);
printf("%s\n", str);
free(str);
return 0;
}
char * dec_to_x_string(int dec, int x) {
if(x < 2 || x > 36) {
printf("UnsupportedOperation\n");
return NULL;
}
int digits = get_digits(dec, x), ch;
char * str = (char *)malloc(sizeof(char) * digits + 1);
str[digits] = '\0';
while(dec) {
ch = dec % x;
if(ch > 9)
ch = ch - 10 + 65;
else
ch += 48;
str[--digits] = (char)ch;
dec /= x;
}
return str;
}
int get_digits(int dec, int x) {
int digits = 0;
while(dec) {
dec /= x;
digits++;
}
return digits;
}