LEETCODE 504. Base 7 解题思路分析

题目大意:

请将一个整数转换为7进制,使用字符串形式输出。

示例1:

输入: 100
输出: "202"

示例 2:

输入: -7
输出: "-10"

如果想查看本题目是哪家公司的面试题,请参考以下免费链接: https://leetcode.jp/problemdetail.php?id=504

解题思路分析:

这道题难度不大,进制转化方式其实很简单,当前数字与7的余数即是7进制数的最低位,得到最低位后,将当前数字除以7,再重复上述步骤,就能得出7进制数的每一位。本题需要注意负数,对于负数的转换方式与正数是完全相同的,我们将负数取绝对值后再操作即可,但最后不要忘记在返回值前加上负号。

另外无论是7进制还是2进制或是N进制,转换原理完全相同。

实现代码:

public String convertToBase7(int num) {
    if(num==0) return "0"; // 如果为0,直接返回0
    String res = ""; // 返回结果
    int n = Math.abs(num); // 先将负数转为正数
    while(n!=0){ // 当n不为0时,循环取7进制低位
        res = n % 7 + res; // 当前数与7的余数为低位,加入返回结果
        n /= 7; // 将当前数字除以7
    }
    // 如果num是负数,在返回结果前加上负号
    if(num<0) res = "-"+res;
    return res;
}

本题解法执行时间为1ms。

Runtime: 1 ms, faster than 99.57% of Java online submissions for Base 7.

Memory Usage: 34.5 MB, less than 100.00% of Java online submissions for Base 7.

本网站文章均为原创内容,并可随意转载,但请标明本文链接
如有任何疑问可在文章底部留言。为了防止恶意评论,本博客现已开启留言审核功能。但是博主会在后台第一时间看到您的留言,并会在第一时间对您的留言进行回复!欢迎交流!
本文链接: https://leetcode.jp/leetcode-504-base-7-解题思路分析/
此条目发表在leetcode分类目录,贴了, , , 标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。