将10进制转换成任意2到20进制数,超过9的数字符号用A到Z来表示用C++写还要用到vector
时间: 2024-02-21 11:56:39 浏览: 109
好的,以下是使用vector的C++代码:
```
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// 将十进制数转换为指定进制数
string convert(int num, int base) {
vector<char> digits; // 用vector存储每一位数字
while (num > 0) {
int digit = num % base;
char c = digit < 10 ? digit + '0' : digit - 10 + 'A'; // 超过9的数字符号用A到Z来表示
digits.push_back(c);
num /= base;
}
string res = "";
for (int i = digits.size() - 1; i >= 0; i--) { // 从高位到低位遍历vector
res += digits[i];
}
return res;
}
int main() {
int num, base;
cout << "请输入一个十进制数:";
cin >> num;
cout << "请输入目标进制数(2-20):";
cin >> base;
if (base < 2 || base > 20) {
cout << "目标进制数无效!" << endl;
return 0;
}
string res = convert(num, base);
cout << "转换结果为:" << res << endl;
return 0;
}
```
这个版本的代码使用了vector来存储数字,每次计算出一个数字之后,将它存储到vector中,最后将vector中的数字按照从高位到低位的顺序拼接起来,得到最终的转换结果。
阅读全文