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 ...
随机推荐
- dubbo与zookeeper的关系
Dubbo建议使用Zookeeper作为服务的注册中心. 1. Zookeeper的作用: zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知道,简单来说就是 ...
- css的各种选择器
一.基本选择器 1. * 通用元素选择器,匹配任何元素 2. E 标签选择器,匹配所有使用E标签的元素 3. .info class选择器,匹配所有class属性中包含info的元素 4. #foot ...
- 二维码生成api
<img id='qrcode_img' src='http://qr.liantu.com/api.php?text={$wenzi}&w={$width}' /> http:/ ...
- Swift数组字面量
可以用一个数组字面量来初始化一个数组,简单地把一个或多个值放在一起就可以了.数组字面量的写法是一行用逗号隔开的值,并在行的两端用一对方括号包起来: [value , value , value ] 下 ...
- ajax异步加载遮罩层特效
<!doctype html> <html> <head> <title>遮罩层(正在加载中)</title> <meta chars ...
- [leetcode-594-Longest Harmonious Subsequence]
We define a harmonious array is an array where the difference between its maximum value and its mini ...
- 【Android Developers Training】 63. 定义形状
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Linux系统网卡设置
由于做了虚拟机的克隆,发现克隆机和被克隆机的MAC地址相同了,下面我将要介绍一下linux中网卡的配置步骤,我使用的linux是CentOS release 6.9 (Final) 1.root用户编 ...
- Linux常见命令(三)
今天我们来介绍第三个命令:pwd. Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来 ...
- java equals和==区别及string类的说明
一.equals和==的区别 1.1.equals之string字符串的比较 1.1.1.源码如下图 if (this == anObject) { return true; ...