力扣字符串组11题整数转罗马数字
发布日期:2022-02-10 13:35:52 浏览次数:20 分类:技术文章

本文共 1856 字,大约阅读时间需要 6 分钟。

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

字符          数值

I             1
V             5
X             10
L             50
C             100
D             500
M             1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。

X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。

示例 1:

输入: 3

输出: "III"
示例 2:

输入: 4

输出: "IV"
示例 3:

输入: 9

输出: "IX"
示例 4:

输入: 58

输出: "LVIII"
解释: L = 50, V = 5, III = 3.
示例 5:

输入: 1994

输出: "MCMXCIV"
解释: M = 1000, CM = 900, XC = 90, IV = 4.

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/integer-to-roman
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

我用很傻很呆的方法逻辑写的

 

如下代码

package Demo;

import java.util.Scanner;
public class Yisheng {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int s=sc.nextInt();
        System.out.println(intToRoman(s));
    }
    public static String intToRoman(int num) {
        String a="";
        int yushu=num;
        if(yushu/1000!=0) {
            int b=yushu/1000;
            for(int i=0;i<b;i++) {
                a=a+"M";
            }
            yushu=yushu%1000;
        }
        if(yushu/100==9) {
            a=a+"CM";
            yushu=yushu%900;
        }else if(yushu/100!=0){
            int b=yushu/100;
            if(b>=5) {
                a=a+"D";
                if(b-5>0) {
                    for(int i=0;i<b-5;i++) {
                        a=a+"C";
                    }
                }
            }else if(b==4) {
                a=a+"CD";
            }else {
                for(int i=0;i<b;i++) {
                    a=a+"C";
                }
            }
            yushu=yushu%100;
        }
        if(yushu/10==9) {
            a=a+"XC";
            yushu=yushu%90;
        }else if(yushu/10!=0){
            int b=yushu/10;
            if(b>=5) {
                a=a+"L";
                if(b-5>0) {
                    for(int i=0;i<b-5;i++) {
                        a=a+"X";
                    }
                }
            }else if(b==4) {
                a=a+"XL";
            }else {
                for(int i=0;i<b;i++) {
                    a=a+"X";
                }
            }
            yushu=yushu%10;
        }
        if(yushu==9) {
            a=a+"IX";
            yushu=yushu%9;
        }else if(yushu!=0){
            
            int b=yushu;
            if(b>=5) {
                a=a+"V";
                System.out.println(b);
                if(b-5>0) {
                    for(int i=0;i<b-5;i++) {
                        a=a+"I";
                    }
                }
            }else if(b==4) {
                a=a+"IV";
            }else {
                for(int i=0;i<b;i++) {
                    a=a+"I";
                }
            }
        }
        return a;

    }

}
 

 

转载地址:https://blog.csdn.net/zoooo_/article/details/96631625 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:蓝桥杯 基础练习 查找整数
下一篇:map::lower_bound/upper_bound的使用

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月26日 19时00分21秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

linux mysql 不能连接远程_linux mysql 远程连接 2021-06-24
PHP实现 bcrypt,如何使php中的bcrypt和Java中的jbcrypt兼容 2021-06-24
php8安全,PHP八大安全函数解析 2021-06-24
php基础语法了解和熟悉的表现,PHP第二课 了解PHP的基本语法以及目录结构 2021-06-24
matlab中lag函数用法,MATLAB movavg函数用法 2021-06-24
matlab变形监测,基于matlab的变形监测数据处理与分析_毕业设计论文 2021-06-24
opencv matlab编程,在Matlab中调用OpenCV函数 | 学步园 2021-06-24
c语言文件wt,c语言,wt和rt中的t是什么意思 2021-06-24
c语言运行几进制,【C语言】求已知等式在几进制条件下成立 2021-06-24
电梯运行仿真c语言代码,电梯调度算法模拟(示例代码) 2021-06-24
android组件动态接收数据库,Android开发——fragment中数据传递与刷新UI(更改控件)... 2021-06-24
云麦小米华为体脂秤怎么样_云康宝和华为智能体脂秤对比评测,实际体验告诉你哪款更好... 2021-06-24
linux 条件判断 取非_Linux awk 系列文章之 awk 多重条件判断 2021-06-24
c语言中如何将字符串的元素一个一个取出_C语言中常用的字符串操作函数 2021-06-24
2d游戏地图编辑器_王者荣耀:新版本爆料!地图编辑器“天工”即将开测,游戏怎么玩由你定!... 2021-06-24
5w2h原则指的是什么_什么是5W2H分析法?一首小诗带入进入大门。 2021-06-24
ad19 导出step 没有pcb_几款主流PCB软件哪个最好用,你用过几款? 2021-06-24
json mysql 字段 默认值_Newtonsoft.Json 六个超简单又实用的特性,值得一试 【上篇】... 2021-06-24
ocdma相干非相干_《Acconeer 60GHz脉冲相干雷达芯片:A111》 2021-06-24
修改表格字体颜色_Excel技巧:Excel如何修改字体颜色 2021-06-24