zoukankan      html  css  js  c++  java
  • 10进制正整数转4位定长的36进制字符串

    题目描述:

    请设计一个函数可以把10进制的正整数转换为4位定长的36进制字符串。

    36进制的规则为:“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”;

    举例说明:
    1=“0001”
    10=“000A”
    20=“000K”
    35=“000Z”
    36=“0010”
    100=“002S”
    2000=“01JK”
    

      这是腾讯2015校园招聘技术类研发笔试题中的一题,给出自己的答案,欢迎拍砖。

    solution:

    string convert(int x)
    {
        string res;
        if(x < 0)
            return res;
        if(x > 1679615)
            return "ZZZZ";
        char map[36] = {'0','1','2','3','4','5','6','7','8','9',
            'A','B','C','D','E','F','G',
            'H','I','J','K','L','M','N',
            'O','P','Q','R','S','T',
            'U','V','W','X','Y','Z'
        };
        int weight = 36*36*36;
        for (int i = 0;i < 4;++i)
        {
            int tmp = x / weight;
            res += map[tmp];
            x -= tmp * weight;
            weight /= 36;
        }
        return res;
    }
  • 相关阅读:
    devops
    classloader
    webpack之个人理解
    java map
    前端性能资料
    kibana使用的lucene查询语法
    【转】关于JVM CPU资源占用过高的问题排查
    netstat命令
    使用LR11录制手机脚本
    jemeter逻辑控制器
  • 原文地址:https://www.cnblogs.com/gattaca/p/4399090.html
Copyright © 2011-2022 走看看