编写一段c++代码,输入一个三位的n进制数值和其对应的n进制,能够输出其对应的十进制数值
时间: 2024-10-06 19:04:23 浏览: 26
在C++中,你可以编写如下的函数来将一个三位的任意进制数转换成十进制数。这里假设用户会提供正确的基数(n),范围通常在2到9之间。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
// 函数用于将n进制字符串转换为十进制整数
int convertToDecimal(std::string num, int base) {
int decimal = 0;
int power = 0;
for (int i = num.size() - 1; i >= 0; i--) {
if (num[i] != '0' && num[i] != '1' && num[i] != '2' && num[i] != '3' && num[i] != '4' && num[i] != '5' && num[i] != '6' && num[i] != '7' && num[i] != '8' && num[i] != '9') {
std::cout << "Invalid input! Please enter a three-digit number in the given base." << std::endl;
return -1;
}
decimal += static_cast<int>(num[i] - '0') * pow(base, power);
power++;
}
return decimal;
}
int main() {
std::string nBaseNum;
int base;
// 输入三位的n进制数和基数
std::cout << "Enter a three-digit number in base X: ";
std::cin >> nBaseNum >> base;
// 确保输入的是三位数
if (nBaseNum.length() != 3) {
std::cout << "Please enter a three-digit number." << std::endl;
return 0;
}
// 转换并输出结果
int decimalValue = convertToDecimal(nBaseNum, base);
if (decimalValue != -1) {
std::cout << "The decimal equivalent is: " << decimalValue << std::endl;
}
return 0;
}
```
在这个程序中,我们首先读取用户输入的三位n进制数和基数,然后检查数字是否有效。如果有效,我们就计算出相应的十进制值并返回;否则,我们会显示错误信息。
阅读全文