• [LeetCode] Integer to Roman 解题报告



    Given an integer, convert it to a roman numeral.
    Input is guaranteed to be within the range from 1 to 3999.
    » Solve this problem

    [解题思路]
    这道题主要就在于如何处理每一位digit,并且按照区间不同处理:
    1<=digit <=3
    digit =4
    digit = 5
    5<digit<=8
    digit =9


    [Code]

    1:  string intToRoman(int num) {  
    2: // Start typing your C/C++ solution below
    3: // DO NOT write int main() function
    4: char symbol[7] = { 'I','V','X', 'L','C', 'D','M'};
    5: string roman;
    6: int scale = 1000;
    7: for(int i =6; i>=0; i-=2)
    8: {
    9: int digit = num/scale;
    10: if(digit != 0)
    11: {
    12: if(digit <= 3)
    13: {
    14: roman.append(digit, symbol[i]);
    15: }
    16: else if(digit ==4)
    17: {
    18: roman.append(1, symbol[i]);
    19: roman.append(1, symbol[i+1]);
    20: }
    21: else if(digit ==5)
    22: {
    23: roman.append(1, symbol[i+1]);
    24: }
    25: else if(digit <=8)
    26: {
    27: roman.append(1, symbol[i+1]);
    28: roman.append(digit-5, symbol[i]);
    29: }
    30: else if(digit ==9)
    31: {
    32: roman.append(1, symbol[i]);
    33: roman.append(1, symbol[i+2]);
    34: }
    35: }
    36: num = num%scale;
    37: scale/=10;
    38: }
    39: return roman;
    40: }





  • 相关阅读:
    事件冒泡
    jquery validation验证身份证号、护照、电话号码、email
    移动平台对 meta 标签的定义
    css3属性笔记
    渐变的参数
    各浏览器前缀
    Ubuntu20.04安装Matlab2018b
    win7 php安装使用
    mysql输入命令后没响应
    CentOS7上搭建Dokuwiki
  • 原文地址:https://www.cnblogs.com/codingtmd/p/5079002.html
Copyright © 2020-2023  润新知