题目描述
给定一个整数,将其转化为 7 进制,并以字符串形式输出。
样例
输入:100
输出:"202"
输入:-7
输出:"-10"
注意
- 输入范围是
[-10^7, 10^7]
。
算法
(模拟) $O(\log n)$
- 按照短除法,直接模拟进制转换,注意最后需要将数组倒置。
- 注意负号的处理,以及输入为 0 时的特判。
时间复杂度
- 进制转换的时间复杂度是 $O(\log n)$。
C++ 代码
class Solution {
public:
string convertToBase7(int num) {
if (num == 0)
return "0";
bool neg = false;
if (num < 0) {
neg = true;
num = -num;
}
string ans = "";
for (; num; num /= 7)
ans += (char)(num % 7 + '0');
reverse(ans.begin(), ans.end());
return neg ? "-" + ans : ans;
}
};