1.题目描述
给定一个十进制数M,以及一个需要转换的进制数N,将十进制数M转换为N进制数
2.思路解析
- 给定一个字符串sTable
- 利用取模下来的数字进行sTable的访问
- 直接+=到ret,最后将ret反转
3.代码实现
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string ret;
// 建立一个表,最后进行字符访问直接输出
string sTable("0123456789ABCDEF");
int M = 0;
int N = 0;
cin >> M >> N;
// flag用来记录M的正负
int flag = 1;
if(M < 0)
{
flag = 0;
M = -M;
}
while(M)
{
// +=操作直接将字符+上去
ret += sTable[M % N];
M /= N;
}
if(flag == 0)
{
ret += '-';
}
// 反转字符,打印
reverse(ret.begin(), ret.end());
cout<<ret;
return 0;
}