首页 > 其他 > 详细

13. 罗马数字转整数

时间:2019-09-10 22:28:13      阅读:96      评论:0      收藏:0      [点我收藏+]


int romanToInt(char * s){
  //  int a[13] = {1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000 };
    int i = 0, k, sum = 0;
    while (s[i]) {
        switch (s[i]) {
            case 'I': if (s[i+1] == 'V') {
                            k = 4;
                            i++;
                        }
                      else if (s[i+1] == 'X') {
                            k = 9;
                            i++;
                      }
                      else 
                        k = 1;
                      break;
                
            case 'V':   k = 5;    break;
                
            case 'X': if (s[i+1] =='L') {
                            k = 40;
                            i++;
                      }
                      else if (s[i+1] == 'C') {
                            k = 90;
                            i++;
                      }
                      else
                        k = 10;   break;
                
            case 'L':   k = 50;   break;
                
            case 'C': if (s[i+1] == 'D') {              
                            k = 400;  
                            i++;
                      }
                      else if (s[i+1] == 'M') {
                            k = 900; 
                            i++;
                      }
                      else
                        k = 100; break;
                
            case 'D':   k = 500; break;
                
            case 'M':   k = 1000; break;
        }
        sum += k;
        i++;
    }
    return sum;
}
/* !< output */
输入
"III"
"MCMXCIV"
输出
3
1994
预期结果
3
1994

13. 罗马数字转整数

原文:https://www.cnblogs.com/xuzhaoping/p/11502898.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!