给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。
2. 解题思路输入: num = 100
输出: “202”
输入: num = -7
输出: “-10”
十进制转换为n进制,用短除法即可,给定的数字不断除n,取余直至商为0。注意输入有正有负,还有0,需要区分这三种情况。
- C++
class Solution {
public:
string convertToBase7(int num) {
if(num==0) return to_string(num);
string res="";
bool flag=false; //通过flag来控制正负
if(num<0){
num = -num;
flag=true;
}
while(num!=0){
res += to_string(num%7); //取余数
num /= 7; // 取商
}
if(flag) res += "-";
reverse(res.begin(), res.end()); // 高位到低位排序
return res;
}
};
- python
class Solution:
def convertToBase7(self, num: int) -> str:
if num == 0:
return '0'
flag = True
if num < 0:
flag = False
num = -num
res = []
while num != 0:
num, i = divmod(num, 7) # divmod函数返回商和余数
res.append(str(i))
res.reverse()
if flag:
return ''.join(res)
else:
return '-' + ''.join(res)



