C++每日一练11.进制转换
Posted 鱼酱2333
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++每日一练11.进制转换相关的知识,希望对你有一定的参考价值。
给定一个十进制数 M ,以及需要转换的进制数 N 。将十进制数 M 转化为 N 进制数。
当 N 大于 10 以后, 应在结果中使用大写字母表示大于 10 的一位,如 ‘A’ 表示此位为 10 , ‘B’ 表示此位为 11 。
若 M 为负数,应在结果中保留负号。
数据范围: M<=10^8 ,2≤N≤16
要求:空间复杂度O(M)O(M),时间复杂度 O(M)O(M)
class Solution
public:
string solve(int M, int N)
string t = "0123456789ABCDEF";
string ans = "";
if(M==0)return "0";
bool fu = false;//记录一下M是不是负数
if(M<0)fu = true;M=-M;//如果是负数,换成正数计算,最后再加上符号位
while(M)
ans += t[M%N];
M/=N;
if(fu)ans+="-";
reverse(ans.begin(), ans.end());
return ans;
;
以上是关于C++每日一练11.进制转换的主要内容,如果未能解决你的问题,请参考以下文章