这题意思是将一个输入的整型阿拉伯数字转化为罗马数字。

思路是将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();
}

转载于:https://www.cnblogs.com/huaiyinxiaojiang/p/6497341.html

Intger To Roman相关推荐

  1. 【leetcode】Roman to Integer

    题目描述: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range fr ...

  2. LeetCode: 13. Roman to Integer

    051106 题目 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol ...

  3. # LeetCode集锦(四) - 第13题 Roman To Integer

    LeetCode集锦(四) - 第13题 Roman To Integer 问题 Roman numerals are represented by seven different symbols: ...

  4. 整数转换为罗马数字 Integer to Roman

    2019独角兽企业重金招聘Python工程师标准>>> 问题: Given an integer, convert it to a roman numeral. Input is g ...

  5. Integer to Roman 问题

    Integer to Roman 问题 leetcode java 1.问题描述 Given an integer, convert it to a roman numeral.Input is gu ...

  6. 罗马数字转整数 · Roman to Integer

    13. Roman to Integer [抄题]: [暴力解法]: 时间分析: 空间分析: [思维问题]: 没有想到罗马字是逆序的情况 没有想到要先用toCharArray()方法把字符串拆成一个字 ...

  7. Roman to Integer LeetCode Java

    描述 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from ...

  8. 【LeetCode】13. Roman to Integer

    题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from ...

  9. Roman to Integer

    Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...

最新文章

  1. VTK:可视化之LabelContours
  2. BZOJ 2179 [快速傅里叶变换 高精度乘法]
  3. Vue 快速集成ElementUI
  4. Python 正则模块的应用
  5. 网站制作---eWebeditor不兼容IE8问题的解决方法
  6. TypeScript 热度超 C 与 Python、Go 开发收入高、运维吃香,调查了 65000 名开发者有这些发现!...
  7. 解决spring的xml文件打开没有namespace等操作选项的问题
  8. 真实教育场景手写/表格/公式OCR数据集
  9. 从零基础入门Tensorflow2.0 ----三、10. 近似求导
  10. Postman如何生成测试报告
  11. 一个非常好的学习方法总结
  12. 三角函数 公式【和差化积、积化和差】最简记忆口诀
  13. 通过scheme协议启动app
  14. 盛诺基和信达生物达成临床研究合作
  15. 在线学习及作业平台管理系统(ssm,mysql)
  16. matlab 指数拟合原理,matlab指数增长和阻滞增长拟合代码.doc
  17. win7安全模式计算机管理在哪里,Win7怎么进入安全模式 3种方法轻松进入Win7安全模式...
  18. CSDN的博客,一声叹息
  19. 逆王传说兑换码入口在哪里?最新礼包码CDKey汇总大全
  20. winform 鼠标 静止时间_双飞燕飞时代FG30S鼠标评测,谁说静音手感不两全?

热门文章

  1. 第10章 嵌入式linux的调试技术
  2. jQuery.Validate 验证
  3. SQL 2005 中的数据约束
  4. 配置ASA 7.x to Router LAN−to−LAN IPsec Tunnel
  5. node封装mysql模块
  6. linux--cut命令
  7. 深入理解ajax系列第五篇——进度事件
  8. 再议C#方法中的反射方式和委托方式
  9. 为iframe添加鼠标事件
  10. Spring注解使用方法