给定一个整数,将其转化为7进制,并以字符串形式输出。
示例 1:
输入: 100
输出: "202"
示例 2:
输入: -7
输出: "-10"
注意: 输入范围是 [-1e7, 1e7] 。
C
char* convertToBase7(int num)
{
int temp=abs(num);
char* res=(char*)malloc(sizeof(char)*11);
int i;
int count=0;
char t;
while(temp)
{
i=temp%7;
res[count]=i+'0';
count++;
temp/=7;
}
for(i=0;i<count/2;i++)
{
t=res[i];
res[i]=res[count-i-1];
res[count-i-1]=t;
}
if(num==0)
{
return "0";
}
else if(num>0)
{
res[count]='\0';
return res;
}
else
{
for(i=count-1;i>=0;i--)
{
res[i+1]=res[i];
}
res[0]='-';
res[count+1]='\0';
return res;
}
}
C++
class Solution {
public:
string convertToBase7(int num)
{
string res;
int i;
int temp=abs(num);
while(temp)
{
i=temp%7;
res.push_back(i+'0');
temp/=7;
}
reverse(res.begin(),res.end());
if(num>0)
{
return res;
}
else if(num==0)
{
return "0";
}
else
{
string rr="-";
rr.append(res);
return rr;
}
}
};
python 法一
class Solution:
def convertToBase7(self, num):
"""
:type num: int
:rtype: str
"""
temp=abs(num)
res=[]
while temp:
i=temp%7
res.append(str(i))
temp//=7
res=list(reversed(res))
res=''.join(res)
if num==0:
return '0'
elif num>0:
return res
else:
return '-'+res
python 法二
class Solution:
def convertToBase7(self, num):
"""
:type num: int
:rtype: str
"""
temp=abs(num)
res=str()
while temp:
i=temp%7
res+=str(i);
temp//=7;
res=res[::-1]
if num==0:
return '0'
elif num>0:
return res
else:
return '-'+res