给定一个整数,将其转化为7进制,并以字符串形式输出。
示例 1:
输入: 100
输出: “202”
示例 2:
输入: -7
输出: “-10”
注意: 输入范围是 [-1e7, 1e7] 。
/*
转换进制原则 当前数除以进制数取余数作为相应数制的最低位数,再用商除以进制数取余数作为次低位,循环下去直至商为0
*/
char * convertToBase7(int num){
if(0 == num){
return "0";
}
int rem = 0;
int len = 0;
int tmp = num;
// ret 开空间
while(tmp) {
len++;
tmp = tmp / 7;
}
if(num < 0) len++;
char *ret = (char *)malloc((len + 1) * sizeof(char));
ret[len] = '\0';
// 负数处理
if(num < 0) {
ret[0] = '-';
num = abs(num);
}
// 进制转换
while(num){
len--;
rem = num % 7;
num = num / 7;
ret[len] = rem + '0';
}
return ret;
}