12. Integer to Roman

Given an integer, convert it to a roman numeral.

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

题目大意:

将一个给定的阿拉伯数字转换成罗马数字。

思路:

这题看到的时候,想的太多。

其实很简单,将千位,百位,十位,个位都表示出来,然后组合即可。

代码如下:

classSolution{public:stringintToRoman(intnum){stringthousands[4]={"","M","MM","MMM"};stringhundreds[10]={"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};stringtens[10]={"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};stringunits[10]={"","I","II","III","IV","V","VI","VII","VIII","IX"};string*hits[4]={units,tens,hundreds,thousands};stringresult;intindex=0;while(num>0){result=hits[index][num%10]+result;num=num/10;index++;}returnresult;}};

总结:

有时候题目没有那么难,不要自己搞的很复杂。问题简单化。简单化。。。


2016-08-19 15:16:29