zoukankan      html  css  js  c++  java
  • 罗马数 与 整数 相互转换

     罗马数——>整数

    inline int number(const char &i)
        {
            switch (i)
            {                       
                case 'I': return 1;
                case 'V': return 5;
                case 'X': return 10;
                case 'L': return 50;
                case 'C': return 100;
                case 'D': return 500;
                case 'M': return 1000;
            default: return 0;
            }
        }
        
        int romanToInt(string s) {
            if(s.size()==1) return number(s[0]);
            int result;
            result+=number(s[0]);
            for(size_t i=1;i<s.size();++i)
            {
                if (number(s[i])>number(s[i - 1]))
                    result += number(s[i]) - 2*number(s[i - 1]);
                else
                    result += number(s[i]);
            }
            return result;
        }

      整数——>罗马数

    string intToRoman(int num) {
            int number[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
            string roman[]={"M", "CM", "D", "CD", "C", "XC","L", "XL", "X", "IX", "V", "IV", "I"};
            string result;
            for(int i=0;num>0;i++)
            {
                int j=num/number[i];
                num%=number[i];
                while(j>0) 
                {
                    result+=roman[i];
                    --j;
                }
            }
            return result;
        }
  • 相关阅读:
    Unstar A File:
    star 一个文件
    列出大星号文件
    删除用户
    curl -d
    创建用户
    Check Account Info
    List Accounts
    认证ping
    python 解接口返回的json字符串
  • 原文地址:https://www.cnblogs.com/wang-130213/p/9074073.html
Copyright © 2011-2022 走看看