[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

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

posted @ 2014-05-30 21:41  Double_win  阅读(204)  评论(0编辑  收藏  举报