[LeetCode 题解]: Interger to Roman

前言

 

【LeetCode 题解】系列传送门:  http://www.cnblogs.com/double-win/category/573499.html

 

1.题目描述

Given an integer, convert it to a roman numeral.

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

2. 思路

给定一个数字,将其转换成罗马数制,输入域1~3999

使用贪心的方法,从高位向低位一次比较.

3. 解法

 1 class Solution {

 2 public:

 3     string intToRoman(int num) {

 4         string s[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};

 5         int n[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};

 6         string ans;

 7         int i=0;

 8         while(num>0)

 9         {

10             if(num>=n[i])

11             {

12                 num-=n[i];

13                 ans+= s[i];

14             }

15             else

16              i++;

17         }

18         return ans;     

19     }

20 };

4. 相关题目

相对应的一道题:Roman to Interger : http://www.cnblogs.com/double-win/p/3760002.html

作者:Double_Win

出处:   http://www.cnblogs.com/double-win/p/3761803.html

声明: 由于本人水平有限,文章在表述和代码方面如有不妥之处,欢迎批评指正~

你可能感兴趣的:(LeetCode)