罗马数字到数字转换

 可可1994棒_241 发布于 2023-02-13 15:57
  • php
  • 1 个回答
    • 罗马数字/解码示例:

      class Roman {
      
          private static int decodeSingle(char letter) {
              switch (letter) {
                  case 'M':
                      return 1000;
                  case 'D':
                      return 500;
                  case 'C':
                      return 100;
                  case 'L':
                      return 50;
                  case 'X':
                      return 10;
                  case 'V':
                      return 5;
                  case 'I':
                      return 1;
                  default:
                      return 0;
              }
          }
      
          public static int decode(String roman) {
              int result = 0;
              String uRoman = roman.toUpperCase(); //case-insensitive
              for (int i = 0; i < uRoman.length() - 1; i++) {//loop over all but the last character
                  if (decodeSingle(uRoman.charAt(i)) < decodeSingle(uRoman.charAt(i + 1))) {
                      result -= decodeSingle(uRoman.charAt(i));
                  } else {
                      result += decodeSingle(uRoman.charAt(i));
                  }
              }
              result += decodeSingle(uRoman.charAt(uRoman.length() - 1));
              return result;
          }
      
          public static void main(String[] args) {
              System.out.println(decode("MCMXC")); //1990
              System.out.println(decode("MMVIII")); //2008
              System.out.println(decode("MDCLXVI")); //1666
          }
      }
      

      2023-02-13 16:00 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有