?题目描述
给定一个整数,将其转化为7进制,并以字符串形式输出。
示例 1:
输入: 100
输出: "202"
示例 2:
输入: -7
输出: "-10"
注意: 输入范围是 [-1e7, 1e7] 。
?Method : 先判断是否为负数,然后取余,最后加上符号,字符串输出
class Solution {
public:
string convertToBase7(int num) {
//if (num == 0) return "0";//记得输出的是字符串
bool is_negative = num < 0;
num = abs(num);
string ans;
// while (num > 0) { // 这里不能写成num>=0,因为0/7会陷入endless loop
// ans = to_string(num % 7) + ans;
// num /= 7;
// }
do{ // 可以减少程序开始时对于0的 特殊case !!
ans = to_string(num % 7) + ans;
num /= 7;
}while (num > 0);
if (is_negative) ans = "-" + ans; //每次取到的余数都是高位
return ans;
}
};