[LeetCode By Go 56]504. Base 7

题目

Given an integer, return its base 7 string representation.

Example 1:

Input: 100
Output: "202"

Example 2:

Input: -7
Output: "-10"

Note: The input will be in range of [-1e7, 1e7].

解题思路

  1. 首先判断输入是否为负数,如果为负数,输出字符串上添加“-”,并将num取成正数
  2. 对正整数循环取余数,并将获得的余数放在原字符串前面
  3. 拼接字符串获得结果

注意
需要判断正整数是否为0,如果为零则转换为“0”

代码

base7.go

package _504_Base7

import "strconv"

func ConvertToBase7(num int) string {
    var ret string
    if num < 0 {
        ret += "-"
        num = -num
    }

    var base7 string
    if 0 == num {
        base7 = "0"
    } else {
        for ;num > 0; {
            base7 = strconv.Itoa(num % 7) + base7
            num = num / 7
        }
    }

    ret += base7

    return ret
}

测试

base7_test.go

package _504_Base7

import "testing"

func TestConvertToBase7(t *testing.T) {
    var tests = []struct{
        input int
        output string
    } {
        {-7, "-10"},
        {101, "203"},
        {0, "0"},
    }

    for _, v := range tests {
        ret := ConvertToBase7(v.input)

        if ret == v.output {
            t.Logf("pass")
        } else {
            t.Errorf("fail, want %+v, get %+v\n", v.output, ret)
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,904评论 18 139
  • 关于 Swift 重要这个文档所包含的准备信息, 是关于开发的 API 和技术的。这个信息可能会改变, 根据这个文...
    无沣阅读 4,372评论 1 27
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,769评论 0 33
  • 我从来不敢想象我和你的未来会是什么样。很多事情我都会在脑海中大概描绘出以后的样子,但是我们的未来我不敢。可能是因为...
    我和我的小太阳阅读 124评论 0 0
  • 家长关心孩子,微信短信,信信相连。我关心毕业的孩子,拍照、记载,载载不忘。 开学典礼上,慧敏、芊芊、颜颜、佳佳、虎...
    富思竭虑阅读 115评论 0 1