给定一个整数num,将其转化为7进制,并以字符串形式输出。
示例一:
输入:num =100
输出:"202"
示例二:
输入:num=-7
输出:"-10"
思路:倒推
char * convertToBase7(int num){
if (num==0)
return "0";
bool negative=num<0;
if (negative)
{
num=abs(num);
}
char *res=(char*)calloc(sizeof(char),20);
int pos=0;
while(num)
{
res[pos++]=num%7+'0';
num/=7;
}
if (negative)
{
res[pos++]='-';
}
for (int i=0,r=pos-1;i<r;i++,r--)
{
int tmp=res[i];
res[i]=res[r];
res[r]=tmp;
}
res[pos++]='\0';
return res;
}
时间复杂度:O(log|num|),其中|nun|表示num的绝对值。循环中最多做O(log|num|)次循环。
空间复杂度:O(log|num|)