zoukankan      html  css  js  c++  java
  • Integer to Roman

    主要思想:
    将罗马数字的范围分块,其中,最左部分可分为13个点。

    对于目标数字,看它在哪个范围内,则它可以拆分为左边节点对应的字符串+(数字-左边界值)的对应罗马字符的组合。

    用一个递归算法来实现即可。

     1 class Solution {
     2 public:
     3     string intToRoman(int num) {
     4         if(num==0)
     5         {
     6             return "";
     7         }
     8         int nums[13]={1,4,5,9,10,40,50,90,100,400,500,900,1000};
     9         string strs[13]={"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
    10         string res="";
    11         for(int i=12;i>=0;i--)
    12         {
    13             if(num>=nums[i])
    14             {
    15                 res=res+strs[i];
    16                 int temp=num-nums[i];
    17                 res=res+intToRoman(temp);
    18                 break;
    19             }
    20         }
    21         return res;
    22     }
    23 };
  • 相关阅读:
    网络请求与远程资源
    JavaScript对象
    微信小程序抓包Charles
    归并排序
    顺序表
    后缀表达式
    中缀表达
    ES6 Promise
    Es 方法
    10.26学习
  • 原文地址:https://www.cnblogs.com/aguai1992/p/4629298.html
Copyright © 2011-2022 走看看