题目描述
给定一个整数,将其转化为 7 进制,并以字符串形式输出。
思路
参考自:https://leetcode-cn.com/problems/base-7/solution/die-dai-chu-7qu-yu-ji-bai-100-by-homesway/
方法一: 基本思路是迭代除7取余,存到一个StringBuilder里,最后反转即可。
对于负数,直接先取正处理,然后加上负号即可。
步骤总结:
- 判断 num 是否为 0,是 0 直接返回 “0”
- 创建StringBuilder对象 sb
- 判断 num 是否为负,是负数就将它变为正数
- while循环开始,取 num 模 7 (即 num 除 7 的余数)(num % 7)追加(append)到 sb中,然后再将 num / 7(迭代)
- 当 num <= 0,循环结束
- 调用翻转方法获取反转后的StringBuilder,sb.reverse(),然后再调用 toString() 方法获取反转后的 String 字符串对象
- 最后返回值,或 num 是负数,就在结果前加 “-”。
方法二 :Java中 static String toString(int num, int radix) 可以将一个整数转换成 radix 进制表示的字符串。
代码
几个问题
- java.lang.StringBuilder.reverse() 方法将导致此字符序列被替换为序列的反转
- java.lang.Integer.toString(int i, int radix)方法可以实现一个 int 类型的 10进制的数据转换为指定进制的数据。