思路:对n进行取模运算,得到的数转化为字符型。若为1~9,正常输出,若大于十,则减去10,再加上'a'。
void itob(int n, char [], int base);
int main()
{
// freopen("0.in", "r", stdin);
// freopen("0.out", "w", stdout);
char s[1000];
int n, base;
while(scanf("%d%d", &n, &base) != EOF) {
itob(n, s, base);
printf("%s\n", s);
}
return 0;
}
void itob(int n, char a[], int base){
int number;
int sign = 1;
int i, j;
char temp;
i = 0;
if(n < 0)
sign = -1;
n *= sign;
while(n > 0){
number = n % base;
if(number >= 0 && number <= 9)
a[i++] = number + '0';
else
a[i++] = number - 10 + 'a';
n /= base;
}
if(sign == -1)
a[i++] = '-';
a[i] = '\0';
j = i - 1;
for(i = 0; i < j; ++i, --j){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}