牛客题霸--进制转换

进制转换

https://www.nowcoder.com/practice/2cc32b88fff94d7e8fd458b8c7b25ec1?tpId=117&&tqId=35037&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking

牛客题霸--进制转换

题目链接

Solution

进制转换的方法较为经典。
对于一个十进制的是数,每次对M取模,然后除以M(M为转换后的进制)即可得到M进制数。
因为M进制的数第一位时,第二位时,第三位
所以如果10进制的数n大于(k是最大的,即)则说明第k+1位上必定是,然后让 依次类推即可。
对于代码实现,可以反过来,不断模M,除以M即可,详见代码。

Code

class Solution {
public:
    string solve(int M, int N) {
        int f = 1;
        string tmp, ans;
        char str[20] = {"0123456789ABCDEF"};
        if (M < 0) M = -M, f = -1;
        while (M) {
            tmp.push_back(str[M % N]); 
            M /= N;
        }
        if (f == -1) ans.push_back('-');
        for (int i = tmp.size() - 1; i >= 0; --i) ans.push_back(tmp[i]);
        return ans;
    }
};
全部评论
如果M取到了int_min,直接转成正数应该会超int范围。所以我觉得这样实现不对
点赞 回复 分享
发布于 2022-04-10 00:02

相关推荐

03-05 14:55
已编辑
门头沟学院 Java
Jhin4ever:别去,杂活太多,今天让你部署一下模型,明天让你写一下LLM工作流,后天要你研究一下Agent,想微调模型都难
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务