c++输入一个罗马数字转为正常数字
时间: 2023-08-03 22:05:03 浏览: 112
c++罗马数字转换
要将罗马数字转换为正常数字,您可以编写一个函数来实现这个功能。下面是一个示例的C++代码:
```cpp
#include <iostream>
#include <unordered_map>
using namespace std;
int romanToInt(string s) {
unordered_map<char, int> romanMap = {
{'I', 1},
{'V', 5},
{'X', 10},
{'L', 50},
{'C', 100},
{'D', 500},
{'M', 1000}
};
int result = 0;
int n = s.length();
for (int i = 0; i < n; i++) {
if (i < n - 1 && romanMap[s[i]] < romanMap[s[i+1]]) {
result -= romanMap[s[i]];
} else {
result += romanMap[s[i]];
}
}
return result;
}
int main() {
string romanNum;
cout << "请输入一个罗马数字: ";
cin >> romanNum;
int num = romanToInt(romanNum);
cout << "转换后的正常数字为: " << num << endl;
return 0;
}
```
在上述代码中,我们使用了一个无序映射 `unordered_map` 来存储罗马数字和对应的正常数字之间的映射关系。然后,我们遍历输入的罗马数字字符串,根据映射关系进行累加或累减操作,最终得到转换后的正常数字。
您可以在 `main` 函数中输入一个罗马数字,然后调用 `romanToInt` 函数进行转换,并输出转换后的正常数字。
阅读全文