Base 7

Description

Given an integer, return its base 7 string representation.
Example 1:

Input: 100
Output: “202”

Example 2:

Input: -7
Output: “-10”

Discuss

题意:
题意比较简单,就是把十进制转换成7进制,用string返回

思考:
这种偏数学性质的题目,先在草稿纸上演算一下,找到进制转换的规律。
就拿100来举例
1. 100 / 7 = 14 (余) 2
2. 14 / 7 = 2 (余) 0
3. 2 / 7 = 0 (余) 2

所以 100的7进制就是202

所以这里就可以联想到循环,用num一直除以7, 直到商等于0. 然后将这整个过程的余数整合起来

另一种写法:
思路还是上面那样
不过代码层面上可以改动一下, 换成用递归的方式来完成

Solution

MySolution:

public class Solution {
    public String convertTo7(int num) {
        if (num == 0) return "0";

        StringBuilder sb = new StringBuilder();
        boolean negative = false;

        if (num < 0) {
            negative = true;
        }
        while (num != 0) {
            sb.append(Math.abs(num % 7));
            num = num / 7;
        }

        if (negative) {
            sb.append("-");
        }

        return sb.reverse().toString();
    }
}

Another Solution:

class Solution {
    public String convertToBase7(int num) {
        if (num < 0)
            return '-' + convertToBase7(-num);
        if (num < 7)
            return num + "";
        return convertToBase7(num / 7) + num % 7;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值