
题目描述
504. 七进制数
给定一个整数 num
,将其转化为 7 进制,并以字符串形式输出。
示例 1:
示例 2:
提示:
解题思路
除 7 取余法,实现可采用迭代或递归。
注意负数进制转换的差异,这里的做法是将负数转换为整数计算最后加上符号位。
代码实现
递归
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 31 32 33 34
| public class Solution504Case1 {
public static String convertToBase7(int num) { StringBuilder sb = new StringBuilder(); convert(Math.abs(num), sb); if (num < 0) { sb.append("-"); } return sb.reverse().toString(); }
private static void convert(int num, StringBuilder sb) { if (7 > num) { sb.append(num); return; } sb.append(num % 7 + ""); convert(num / 7, sb); }
public static void main(String[] args) { Integer.toString(1, 7); System.err.println(convertToBase7(-8)); } }
|
迭代
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class Solution504Case2 { public static String convertToBase7(int num) { if (0 == num) { return "0"; } boolean negative = num < 0; StringBuilder sb = new StringBuilder(); num = Math.abs(num); while (num > 0) { sb.append(num % 7); num = num / 7; } if (negative) { sb.append("-"); } return sb.reverse().toString(); }
public static void main(String[] args) { System.err.println(convertToBase7(-8)); } }
|