zoukankan      html  css  js  c++  java
  • 12. Integer to Roman(C++)

    Given an integer, convert it to a roman numeral.

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

    Solution:

    以3999,为例:

    class Solution {
    public:
      string intToRoman(int num) {
        if(num<1||num>3999) return NULL;
        string str;
        while(num){
          if(num/1000!=0){
            for(int i=0;i<num/1000;i++) str+="M";
            num=num%1000;
          }else if(num/100!=0){
            int tmp=num/100;
            if(tmp%5==4){
              if(tmp/5==0){
                str+="C";str+="D";
              }else{  
                str+="C";str+="M";
              }
            }else{
              if(tmp/5!=0){
                str+="D";
              }
              for(int i=0;i<tmp%5;i++) str+="C";
            }
            num=num%100;
          }else if(num/10!=0){
            int tmp=num/10;
            if(tmp%5==4){
              if(tmp/5==0){
                str+="X";str+="L";
              }else{
                str+="X";str+="C";
              }
            }else{
              if(tmp/5!=0){
                str+="L";
              }
              for(int i=0;i<tmp%5;i++) str+="X";
            }
            num=num%10;
          }else{
            if(num%5==4){
              if(num/5==0){
                str+="I";str+="V";
              }else{
                str+="I";str+="X";
              }
            }else{
              if(num/5!=0){
                str+="V";
              }
              for(int i=0;i<num%5;i++) str+="I";
            }
            num=num%1;
          }
        }
        return str;
      }
    };

  • 相关阅读:
    1208C Magic Grid
    jsc2019_qualE Card Collector
    jsc2019_qualD Classified
    jsc2019_qualC Cell Inversion
    牛客提高D6t3 分班问题
    牛客提高D6t2 破碎的序列
    牛客提高D6t1 积木大赛
    loj6259「CodePlus 2017 12 月赛」白金元首与独舞
    p4208 [JSOI2008]最小生成树计数
    p4111 [HEOI2015]小Z的房间[简述矩阵树定理]
  • 原文地址:https://www.cnblogs.com/devin-guwz/p/6495565.html
Copyright © 2011-2022 走看看