题目大意:
请将一个整数转换为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.
本网站文章均为原创内容,并可随意转载,但请标明本文链接如有任何疑问可在文章底部留言。为了防止恶意评论,本博客现已开启留言审核功能。但是博主会在后台第一时间看到您的留言,并会在第一时间对您的留言进行回复!欢迎交流!
本文链接: http://leetcode.jp/leetcode-504-base-7-解题思路分析/