进制转换
【问题描述】
编写一个程序,可以实现将任意十进制整数n转换为m进制数,其中
10-15用大写字母A-F表示 。
输入:包含两个正整数n(1<n<1000)和m(1<m<=16);
输出:转换后的m进制数。
【输出样例】
6F
#include <iostream>
using namespace std;
void trans(int n, int m)
{
if (n < m) {
if (n < 10) cout << n;
else cout << char('A' + n - 9);
return;
}
int t1 = n / m;
if (t1 < 10) cout << t1;
else cout << char('A' + t1 - 9);
n %= m;
trans(n, m);
}
int main() {
/*将任意十进制整数n转换为m进制数,其中
10-15用大写字母A-F表示 。
输入:包含两个正整数n(1<n<1000)和m(1<m<=16);
输出:转换后的m进制数。*/
int n = 31;
int m = 16;
cin >> n >> m;
if (n < 1 || n > 999)
cout << "n的范围错误..." << endl;
if (m < 2 || m > 16)
cout << "m的范围错误..." << endl;
trans(n, m);
return 0;
}
#include <iostream>
#include <string>
using namespace std;
string trans(int n, int m)
{
string str = "";
if (n < m) {
if (n < 10) str = { char('0' + n), 0 };
else str = { char('A' + n - 9), 0 };
return str;
}
int t1 = n / m;
n %= m;
if (t1 < 10) str = { char('0' + t1), 0 };
else str = { char('A' + t1 - 9), 0 };
return (str + trans(n, m));
}
int main() {
/*将任意十进制整数n转换为m进制数,其中
10-15用大写字母A-F表示 。
输入:包含两个正整数n(1<n<1000)和m(1<m<=16);
输出:转换后的m进制数。*/
int n;
int m;
//cin >> n >> m;
if (n < 1 || n > 999)
cout << "n的范围错误..." << endl;
if (m < 2 || m > 16)
cout << "m的范围错误..." << endl;
cout << trans(n, m) << endl;
return 0;
}