注意num==0的情况
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char s[10000000];
int a[10000000];
char* convertToBase7(int num) {
int i=0,j,len;
if(num==0)
return "0";
if(num>=0)
{
while(num)
{
a[i]=num%7;
num=num/7;
i++;
}
len=i;
i--;
for(j=0;j<len;j++,i--)
{
s[j]=a[i]+'0';
}
s[len]='\0';
}
else
{
num=num*-1;
while(num)
{
a[i]=num%7;
num=num/7;
i++;
}
len=i;
i--;
for(j=1;j<=len;j++,i--)
{
s[j]=a[i]+'0';
}
s[0]='-';
s[len+1]='\0';
}
// puts(s);
return s;
}
int main()
{
printf("%s\n",convertToBase7(0));
return 0;
}