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

    首先是我自己看完网上的罗马数规则写的又臭又长的代码!(捂脸!!)

     1 class Solution {
     2 public:
     3     string intToRoman(int num) {
     4         string s="";
     5         int a[4]={0},i=3;
     6         while(num!=0)
     7         {
     8             a[i]=num%10;
     9             num=num/10;
    10             i--;
    11         }
    12         while(a[0]!=0)
    13         {
    14             s=s+'M';
    15             a[0]--;
    16         }
    17         if(a[1]!=0)
    18         {
    19             if(a[1]==9) s=s+'C'+'M';
    20             else if(a[1]>=5) 
    21                   {
    22                    s=s+'D';
    23                    a[1]=a[1]-5;
    24                    while(a[1]!=0)
    25                      {
    26                        s=s+'C';
    27                        a[1]--;
    28                      }
    29                   }
    30                   else{
    31                       if(a[1]==4) s=s+'C'+'D';
    32                       else{ while(a[1]!=0)
    33                      {
    34                        s=s+'C';
    35                        a[1]--;
    36                      }
    37                           }
    38                   }
    39         }
    40          if(a[2]!=0)
    41         {
    42             if(a[2]==9) s=s+'X'+'C';
    43             else if(a[2]>=5) 
    44                   {
    45                    s=s+'L';
    46                    a[2]=a[2]-5;
    47                    while(a[2]!=0)
    48                      {
    49                        s=s+'X';
    50                        a[2]--;
    51                      }
    52                   }
    53                   else{
    54                       if(a[2]==4) s=s+'X'+'L';
    55                       else{  while(a[2]!=0)
    56                      {
    57                        s=s+'X';
    58                        a[2]--;
    59                      }
    60                     }
    61                   }
    62         }
    63         if(a[3]!=0)
    64         {
    65             if(a[3]==9) s=s+'I'+'X';
    66             else if(a[3]>=5) 
    67                   {
    68                    s=s+'V';
    69                    a[3]=a[3]-5;
    70                    while(a[3]!=0)
    71                      {
    72                        s=s+'I';
    73                        a[3]--;
    74                      }
    75                   }
    76                   else{
    77                       if(a[3]==4) s=s+'I'+'V';
    78                       else{ while(a[3]!=0)
    79                       {
    80                        s=s+'I';
    81                        a[3]--;
    82                       }
    83                           }
    84                   }
    85         }
    86         return s;
    87     }
    88 };

       下面的是网上流传比较简单的:

    1   public static String intToRoman(int num) {
    2         String M[] = {"", "M", "MM", "MMM"};
    3         String C[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
    4         String X[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
    5         String I[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
    6         return M[num/1000] + C[(num%1000)/100] + X[(num%100)/10] + I[num%10];
    7     }
  • 相关阅读:
    【Java】+Lombok
    【Java】【陷阱】toString() 再也不用了
    【Excel】获取一列的有效行数
    【Excel】同一个表格 不同sheet表之间数据关联
    【Excel】+ 高亮显示当前单元格所在的行与列
    【Java】获取类中所有的方法
    捕获子线程中的异常
    Kafka documentation PDF
    Spring java8 LocalDatetime 格式化
    OneDrive同步文件夹不显示绿色对勾
  • 原文地址:https://www.cnblogs.com/daocaorenblog/p/5216715.html
Copyright © 2011-2022 走看看