力扣小白刷题之504题七进制数

题目描述

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

思路

参考自:https://leetcode-cn.com/problems/base-7/solution/die-dai-chu-7qu-yu-ji-bai-100-by-homesway/

方法一: 基本思路是迭代除7取余,存到一个StringBuilder里,最后反转即可。
对于负数,直接先取正处理,然后加上负号即可。
步骤总结:

  1. 判断 num 是否为 0,是 0 直接返回 “0”
  2. 创建StringBuilder对象 sb
  3. 判断 num 是否为负,是负数就将它变为正数
  4. while循环开始,取 num 模 7 (即 num 除 7 的余数)(num % 7)追加(append)到 sb中,然后再将 num / 7(迭代)
  5. 当 num <= 0,循环结束
  6. 调用翻转方法获取反转后的StringBuilder,sb.reverse(),然后再调用 toString() 方法获取反转后的 String 字符串对象
  7. 最后返回值,或 num 是负数,就在结果前加 “-”。

方法二 :Java中 static String toString(int num, int radix) 可以将一个整数转换成 radix 进制表示的字符串。

代码

力扣小白刷题之504题七进制数
力扣小白刷题之504题七进制数

几个问题

  1. java.lang.StringBuilder.reverse() 方法将导致此字符序列被替换为序列的反转
  2. java.lang.Integer.toString(int i, int radix)方法可以实现一个 int 类型的 10进制的数据转换为指定进制的数据。