zoukankan      html  css  js  c++  java
  • 【JAVA、C++】LeetCode 012 Integer to Roman

    Given an integer, convert it to a roman numeral.

    Input is guaranteed to be within the range from 1 to 3999.

    本题思路比较简单,难度主要集中在罗马数字本身,直接贴代码。

    思路一,从高位开始:

    JAVA:

    	static public String intToRoman(int number) {
    		int[] values = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };
    		String[] numerals = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X","IX", "V", "IV", "I" };
    		//不推荐用String类型,因为+的本质是建立StringBuilder()的过程
    		StringBuilder result = new StringBuilder();
    		for (int i = 0; i < values.length; i++) {
    			while (number >= values[i]) {
    				number -= values[i];
    				result.append(numerals[i]);
    			}
    		}
    		return new String(result);
    	}
    

     C++:

     1 class Solution {
     2 public:
     3     string intToRoman(int num) {
     4         vector<int> values = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };
     5         string numerals[] = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X","IX", "V", "IV","I" };
     6         string res;
     7         for (int i = 0; i < values.size(); i++) 
     8             while (num >= values[i]) {
     9                 num -= values[i];
    10                 res+=numerals[i];
    11             }
    12         return res;
    13     }
    14 };

    思路二,从低位开始:

    JAVA:

    static public String intToRoman(int num) {
            String Roman[][] = {
                    {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},
                    {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},
                    {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},
                    {"", "M", "MM", "MMM"}
            };
            StringBuilder result = new StringBuilder();
            for(int i=0;i<Roman.length;i++,num/=10)
                result.insert(0,Roman[i][num % 10]);
            return new String(result);
        }
    
  • 相关阅读:
    像画笔一样慢慢画出Path的三种方法(补充第四种)
    占位符行为 PlaceHolderBehavior 的实现以及使用
    WPF实现物理效果 拉一个小球
    WPF实现Twitter按钮效果
    WPF自适应可关闭的TabControl 类似浏览器的标签页
    WPF仿百度Echarts人口迁移图
    WPF绘制简单常用的Path
    51Nod 1534 棋子游戏
    数论基础
    Buy a Ticket
  • 原文地址:https://www.cnblogs.com/tonyluis/p/4464969.html
Copyright © 2011-2022 走看看