• 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;
      }
    };

  • 相关阅读:
    [整理]解析Json需要设置Mime
    [整理]IE11中的WebGL探秘:渲染速度超Chrome
    [转载]详解主流浏览器多进程架构:Chrome、IE
    [转载]为什么浏览器会使用多进程架构
    [整理]win7下VS2010遇到内存不足解决方发
    [整理]WebAPI中应用oData
    [转载]NodeJS优缺点及适用场景讨论
    [转载]HTML5 真的会消灭原生App吗?
    [转载]微软VS2015支持Android和iOS编程
    VC++调试基础
  • 原文地址:https://www.cnblogs.com/devin-guwz/p/6495565.html
Copyright © 2020-2023  润新知