> 文章列表 > 504. 七进制数——【Leetcode每日一题】

504. 七进制数——【Leetcode每日一题】

504. 七进制数——【Leetcode每日一题】

504. 七进制数

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

示例 1:

输入: num = 100
输出: “202”

示例 2:

输入: num = -7
输出: “-10”

提示:

  • −107<=num<=107-10^7 <= num <= 10^7107<=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 stubint 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;
}

运行结果:

504. 七进制数——【Leetcode每日一题】

复杂度分析:

  • 时间复杂度O(log∣n∣)O(log∣n∣)O(logn)
  • 空间复杂度O(log∣n∣)O(log∣n∣)O(logn)

注:仅供学习参考, 如有不足,欢迎指正!

题目来源:力扣。