504. 七进制数
给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。
示例 1:
输入: num = 100
输出: “202”
示例 2:
输入: num = -7
输出: “-10”
提示:
- − 1 0 7 < = n u m < = 1 0 7 -10^7 <= num <= 10^7 −107<=num<=107
思路:数学
代码:(Java、C++)
Java
import java.util.ArrayList;
import java.util.List;
public class ConvertToBase7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = -7;
System.out.println(convertToBase7(num));
}
public static String convertToBase7(int num) {
if(num == 0) {
return "0";
}
StringBuilder str = new StringBuilder();
boolean flag = num > 0;//标记是正还是负数
if(!flag) {
num = -num;
}
while(num >= 7) {
str.append(num % 7);
num /= 7;
}
str.append(num);
if(!flag) {
str.append("-");
}
return str.reverse().toString();
}
}
C++
#include<iostream>
using namespace std;
#include<string>
string convertToBase7(int num) {
if (num == 0) {
return "0";
}
string str;
bool flag = num > 0;//标记是正还是负数
if (!flag) {
num = -num;
}
while (num >= 7) {
str.append(to_string(num % 7));
num /= 7;
}
str.append(to_string(num));
if (!flag) {
str.append("-");
}
reverse(str.begin(),str.end());
return str;
}
int main() {
int num = -7;
cout << convertToBase7(num) << endl;
system("pause");
return 0;
}
运行结果:
复杂度分析:
- 时间复杂度: O ( l o g ∣ n ∣ ) O(log∣n∣) O(log∣n∣)
- 空间复杂度: O ( l o g ∣ n ∣ ) O(log∣n∣) O(log∣n∣)
注:仅供学习参考, 如有不足,欢迎指正!
题目来源:力扣。