-
题目:罗马数字转整数
-
难度:简单
-
题目描述:
- 示例 1:
输入: “III”
输出: 3 -
示例 2:
输入: “IV”
输出: 4 -
示例 3:
输入: “IX”
输出: 9 -
示例 4:
输入: “LVIII”
输出: 58
解释: L = 50, V= 5, III = 3. -
示例 5:
输入: “MCMXCIV”
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.
C语言算法:根据题意进行逻辑判断
int romanToInt(char * s){
int count = 0;
while (*s){
if (*s == 'V') count += 5;
else if (*s == 'L') count += 50;
else if (*s == 'D') count += 500;
else if (*s == 'M') count += 1000;
else if (*s == 'I')
count = (*(s + 1) == 'V' || *(s + 1) == 'X') ? count - 1 : count + 1;
else if (*s == 'X')
count = (*(s + 1) == 'L' || *(s + 1) == 'C') ? count - 10 : count + 10;
else
count = (*(s + 1) == 'D' || *(s + 1) == 'M') ? count - 100 : count + 100;
s++;
}
return count;
}