[leetcode 12] Integer to Roman

来源:互联网 发布:矩阵是什么意思 编辑:程序博客网 时间:2024/04/28 05:04

题目:

Given an integer, convert it to a roman numeral.

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

思路:

1.题目要求将输入的正数用罗马数字表示,由于题目设定给定的数小于4000,那么该问题就比较容易解决;
2.设立4个string数组,分别存储个位到千位的罗马数字;
3.函数中先对int的千位进行处理,再对百位进行处理(x/100),用获得的数与相应string数组中的值做比对,依次类推,获得该为的罗马数字,直到处理完个位;
4.思路简单,可直接看代码。

代码:

class Solution{public:string intToRoman(int num){string bit[9]={"I","II","III","IV","V","VI","VII","VIII","IX"};string dec[9]={"X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};string hun[9]={"C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};string kbit="M";int k=num/1000;string result="";for(int i=0;i!=k;++i)result += kbit;num=num%1000;int h=num/100;if(h>0)result+=hun[h-1];num=num%100;int d=num/10;if(d>0)result+=dec[d-1];num=num%10;int b=num/1;if(b>0)result+=bit[b-1];return result;}};


0 0
原创粉丝点击