用c++把罗马数字转换为阿拉伯数字
时间: 2024-02-05 19:10:48 浏览: 143
以下是将罗马数字转换为阿拉伯数字的 C++ 代码:
```c++
#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 prev = 0;
for (char c : s) {
int curr = romanMap[c];
if (curr > prev) {
result += curr - 2 * prev;
} else {
result += curr;
}
prev = curr;
}
return result;
}
int main() {
string roman = "XIV";
int arabic = romanToInt(roman);
cout << roman << " in Arabic numerals is " << arabic << endl;
return 0;
}
```
该代码使用了哈希表来存储罗马数字和它们所对应的阿拉伯数字。接着,通过循环遍历罗马数字字符串中的每个字符,将其转换成对应的阿拉伯数字,并根据当前数字是否大于前一个数字来进行加减操作。最后,返回得到的阿拉伯数字。
阅读全文