Q12整数转罗马数字

思路

就是模拟规则

代码

java 复制代码
class Solution {
   public String intToRoman(int num) {
        Parameter parameter = new Parameter();
        parameter.num = num;
        parameter.result = "";
        while (parameter.num != 0){
            convert(parameter);
        }
        return parameter.result;
    }

    private void convert(Parameter parameter) {
        String number = Integer.toString(parameter.num);
        char firstChar = number.charAt(0);
        if (firstChar == '4'){
            handle4(parameter);
        } else if (firstChar == '9') {
            handle9(parameter);
        } else if (parameter.num >= 1000) {
            parameter.result = parameter.result + "M";
            parameter.num = parameter.num - 1000;
        } else if (parameter.num >= 500) {
            parameter.result = parameter.result + "D";
            parameter.num = parameter.num - 500;
        }else if (parameter.num >= 100) {
            parameter.result = parameter.result + "C";
            parameter.num = parameter.num - 100;
        }else if (parameter.num >= 50) {
            parameter.result = parameter.result + "L";
            parameter.num = parameter.num - 50;
        }else if (parameter.num >= 10) {
            parameter.result = parameter.result + "X";
            parameter.num = parameter.num - 10;
        }else if (parameter.num >= 5) {
            parameter.result = parameter.result + "V";
            parameter.num = parameter.num - 5;
        }else if (parameter.num >= 1) {
            parameter.result = parameter.result + "I";
            parameter.num = parameter.num - 1;
        }
    }

    private void handle9(Parameter parameter) {
        if (parameter.num >= 900){
            parameter.result = parameter.result + "CM";
            parameter.num = parameter.num - 900;
        } else if (parameter.num >= 90) {
            parameter.result = parameter.result + "XC";
            parameter.num = parameter.num - 90;
        } else if (parameter.num >= 9) {
            parameter.result = parameter.result + "IX";
            parameter.num = parameter.num - 9;
        }
    }

    private void handle4(Parameter parameter) {
        if (parameter.num >= 400){
            parameter.result = parameter.result + "CD";
            parameter.num = parameter.num - 400;
        } else if (parameter.num >= 40) {
            parameter.result = parameter.result + "XL";
            parameter.num = parameter.num - 40;
        } else if (parameter.num >= 4) {
            parameter.result = parameter.result + "IV";
            parameter.num = parameter.num - 4;
        }
    }


}
class Parameter{
    int num;
    String result;
}
相关推荐
Karoku0667 分钟前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
geek_Chen019 分钟前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器
麒麟而非淇淋35 分钟前
AJAX 入门 day1
前端·javascript·ajax
架构文摘JGWZ37 分钟前
Java 23 的12 个新特性!!
java·开发语言·学习
2401_8581205337 分钟前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab
(⊙o⊙)~哦40 分钟前
linux 解压缩
linux·运维·服务器
阿树梢42 分钟前
【Vue】VueRouter路由
前端·javascript·vue.js
拾光师2 小时前
spring获取当前request
java·后端·spring
aPurpleBerry2 小时前
neo4j安装启动教程+对应的jdk配置
java·neo4j
我是苏苏2 小时前
Web开发:ABP框架2——入门级别的增删改查Demo
java·开发语言