给出一个正整数N和目标进制,将其转换并且输出
代码如下:
#include <iostream>
using namespace std;
void mTurntoN(int m, int n, char* buf);
int main() {
char buf[100] = { 0 };
cout << "输入要转化的进制:";
int n; cin >> n;
cout << "输入正整数m:";
int m; cin >> m;
mTurntoN(m, n, buf);
//输出
puts(buf);
}
/*
m为正整数,n为目标进制,buf为转换后的数,用字符串表示
*/
void mTurntoN(int m, int n, char* buf) {
static int i = 0;
if (m == 0) {
buf[i] = '0';
buf[i + 1] = '\0';
return;
}
else {
mTurntoN(m / n, n, buf); //递归调用
switch (m%n)
{
case 10:
buf[i] = 'A';
break;
case 11:
buf[i] = 'B';
break;
case 12:
buf[i] = 'C';
break;
case 13:
buf[i] = 'D';
break;
case 14:
buf[i] = 'E';
break;
case 15:
buf[i] = 'F';
break;
default:
buf[i] = m%n + '0';
break;
}
i++;
}
}
输出结果: