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.
題目大意:
将一個給定的阿拉伯數字轉換成羅馬數字。
思路:
這題看到的時候,想的太多。
其實很簡單,将千位,百位,十位,個位都表示出來,然後組合即可。
代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code>class</code> <code>Solution {</code>
<code>public</code><code>:</code>
<code> </code><code>string intToRoman(</code><code>int</code> <code>num) {</code>
<code> </code><code>string thousands[4] = {</code><code>""</code><code>,</code><code>"M"</code><code>,</code><code>"MM"</code><code>,</code><code>"MMM"</code><code>};</code>
<code> </code><code>string hundreds[10] = {</code><code>""</code><code>,</code><code>"C"</code><code>,</code><code>"CC"</code><code>,</code><code>"CCC"</code><code>,</code><code>"CD"</code><code>,</code><code>"D"</code><code>,</code><code>"DC"</code><code>,</code><code>"DCC"</code><code>,</code><code>"DCCC"</code><code>,</code><code>"CM"</code><code>};</code>
<code> </code><code>string tens[10] = {</code><code>""</code><code>,</code><code>"X"</code><code>,</code><code>"XX"</code><code>,</code><code>"XXX"</code><code>,</code><code>"XL"</code><code>,</code><code>"L"</code><code>,</code><code>"LX"</code><code>,</code><code>"LXX"</code><code>,</code><code>"LXXX"</code><code>,</code><code>"XC"</code><code>};</code>
<code> </code><code>string units[10] = {</code><code>""</code><code>,</code><code>"I"</code><code>,</code><code>"II"</code><code>,</code><code>"III"</code><code>,</code><code>"IV"</code><code>,</code><code>"V"</code><code>,</code><code>"VI"</code><code>,</code><code>"VII"</code><code>,</code><code>"VIII"</code><code>,</code><code>"IX"</code><code>};</code>
<code> </code><code>string * hits[4] = {units,tens,hundreds,thousands};</code>
<code> </code>
<code> </code><code>string result;</code>
<code> </code><code>int</code> <code>index = 0;</code>
<code> </code><code>while</code> <code>(num > 0)</code>
<code> </code><code>{</code>
<code> </code><code>result = hits[index][num % 10] + result;</code>
<code> </code><code>num = num / 10;</code>
<code> </code><code>index++;</code>
<code> </code><code>}</code>
<code> </code><code>return</code> <code>result;</code>
<code> </code><code>}</code>
<code>};</code>
總結:
有時候題目沒有那麼難,不要自己搞的很複雜。問題簡單化。簡單化。。。
本文轉自313119992 51CTO部落格,原文連結:http://blog.51cto.com/qiaopeng688/1840309