Fork me on GitHub
0%

leetcode504

题目

给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。

输入

num = 100

输出

“202”

输入

num = -7

输出

“-10”

注意:

-107 <= num <= 107
可能是负的,先处理负号
可能是0
可能范围很大,需要处理

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution {
public:
string convertToBase7(int num) {
return tenToR(num, 7);
}
private:
const string words = "0123456789abcdef";
string tenToR(int num, const int R) {
// 特判0
if (num == 0) {
return "0";
}
// 处理负数
long long n = num;
string flag;
if (n < 0) {
flag = "-";
n = -n;
}

string s;
while(n) {
int idx = n%R;
n /= R;
s += words[idx];
}
reverse(s.begin(), s.end());
return flag + s;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
func convertToBase7(num int) string {
if num == 0 {
return "0"
}
negative := num < 0
if negative {
num = -num
}
s := []byte{}
for num > 0 {
s = append(s, '0'+byte(num%7))
num /= 7
}
if negative {
s = append(s, '-')
}
for i, n := 0, len(s); i < n/2; i++ {
s[i], s[n-1-i] = s[n-1-i], s[i]
}
return string(s)
}
觉得有帮助的请作者喝杯咖啡吧~