Intger To Roman
这题意思是将一个输入的整型阿拉伯数字转化为罗马数字。
思路是将1-10对应的罗马数字放在字符串数组里,然后发现数据变化规律即可,eg:389 = 300 + 89 +9 分别对应的罗马数字。
public static void main(String[] args) {
String[] strs = {"I","II","III","IV","V","VI","VII","VIII","IX","X"};
Scanner input = new Scanner(System.in);
System.out.print("请输入一个1-3999整数:");
int n = input.nextInt();
if(n < 1 || n >3999){
System.out.print("输入超出范围!");
}else{
String result = toRomanNumeral(strs,n);
System.out.println(result);
}
}
public static String toRomanNumeral(String[] strs, int n) {
StringBuffer sb = new StringBuffer();
if(n > 0 && n <= 10){
sb.append(strs[n-1]);
}else if(n>10 && n <=100){
sb.append(zhuanHua(n/10,strs)).append(strs[n%10-1]);
}else if(n>100 && n <= 1000){
sb.append(zhuanHua2(n/100,strs)).append(zhuanHua(n%100/10,strs)).append(strs[n%100%10-1]);
}else if(n>1000 && n <= 3999){
for(int i = 0; i < n/1000; ++i){
sb.append("M");
}
n%=1000;
sb.append(zhuanHua2(n/100,strs)).append(zhuanHua(n%100/10,strs)).append(strs[n%100%10-1]);
}else{
sb.append("输入超出范围!");
}
return sb.toString();
}
public static String zhuanHua2(int i, String[] strs) {
StringBuffer sb = new StringBuffer();
for(int j = 0; j < strs[i-1].length(); ++j){
char temp = strs[i-1].charAt(j);
if(temp == 'X'){
temp = 'M';
}else if(temp == 'I'){
temp = 'C';
}else if(temp == 'V'){
temp = 'D';
}
sb.append(temp);
}
return sb.toString();
}
public static String zhuanHua(int i, String[] strs) {
StringBuffer sb = new StringBuffer();
for(int j = 0; j < strs[i-1].length(); ++j){
char temp = strs[i-1].charAt(j);
if(temp == 'X'){
temp = 'C';
}else if(temp == 'I'){
temp = 'X';
}else if(temp == 'V'){
temp = 'L';
}
sb.append(temp);
}
return sb.toString();
}
Intger To Roman的更多相关文章
- [LeetCode] Roman to Integer 罗马数字转化成整数
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...
- [LeetCode] Integer to Roman 整数转化成罗马数字
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- 【leetcode】Roman to Integer
题目描述: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range fr ...
- [Leetcode] Roman to Integer
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...
- Integer to Roman -- LeetCode 012
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- 【LeetCode】Roman to Integer & Integer to Roman
Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...
- No.013:Roman to Integer
问题: Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from ...
- 【leetcode】Integer to Roman
Integer to Roman Given an integer, convert it to a roman numeral. Input is guaranteed to be within t ...
- 【leetcode】Integer to Roman & Roman to Integer(easy)
Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...
随机推荐
- 浅谈js中的正则表达式
很多时候多会被正则表达式搞的晕头转向,最近抽出时间对正则表达式进行了系统的学习,整理如下: 正则表达式的创建 两种方法,一种是直接写,由包含在斜杠之间的模式组成:另一种是调用RegExp对象的构造函数 ...
- 不带插件 ,自己写js,实现批量上传文件及进度显示
今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是 ...
- mysql 修改表结构的字段名
alter table domains change STATUS status tinyint(1) not null;
- (cljs/run-at (JSVM. :browser) "命名空间就这么简单")
前言 一个cljs文件定义一个命名空间,通过命名空间可以有效组织代码,这是构建大型系统必备的基础设施.本篇我们就深入理解cljs中的命名空间吧! 好习惯从"头"开始 每个cljs ...
- 初学spring boot踩过的坑
一.搭建spring boot环境 maven工程 pom文件内容 <project xmlns="http://maven.apache.org/POM/4.0.0" xm ...
- jquery 变量和原生js变量的关系
其实js 变量和 jquery没什么不一样, 也可以直接 var hhhh=$("header"); 但是当用到用到hhh时依然要用jquery 的方式,而不能js原生的方式.
- Eclipse 快捷键和模板设置
快捷键设置 菜单 Window --> Preferences---General---Keys Content Assist: 代码提示快捷键 模板设置 新建一个模板 在Insert Va ...
- 谈谈webpack 的优势
其优势主要可以归类为如下几个: 1. webpack 是以 commonJS 的形式来书写脚本滴,但对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移. 2. 能被模块化的不仅仅是 JS 了. ...
- jQuery扩展方法笔记
一.方式列表: 1.jQuery.extend(Object); // jQuery 本身的扩展方法 2.jQuery.fn.extend(Object); // jQuery 所选对象扩展方法 二. ...
- zabbix实现邮件报警
说明: Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常. 实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报 ...