2016-09-18 23 views
-1

私はアルゴリズムに関して助けが必要です。ローマ字を10進数に変換できるプログラムのアルゴリズムを開発しなければならないという問題があります。ローマ字を10進数に変換できるプログラムのアルゴリズム

私はそれを行う方法がわかりませんが、完全なアルゴリズムを好むでしょうが、どんな助けにも感謝します。 プログラムではないアルゴリズムです!

enter image description here

+0

ことだろうあなたがこれを行うと思われるプログラミング言語を – whitebrow

+0

で言えば助けてください。しかし、そのアルゴリズムは –

答えて

0

アイデアが開始する端からローマ数字の文字列をトラバースすることです。各文字について、対応する数字を結果に追加します。 'I'、 'X'、 'C​​'などの特殊な のケースでは、結果が対応する数値よりも大きいかどうかを確認します。はいの場合は、結果から数字 を減算する必要があります。いいえの場合は、数値を結果に追加する必要があります。例えば

res = 0 
for each character c backwards: 
    if c =='I' 
    res += res + (res >= 5 ? -1 : 1) 
    else if c=='V' 
    res += res + 5 
    else if c=='X' 
    res += 10 * (res >= 50 ? -1 : 1) 
    else if c=='L' 
    res += 50; 
    else if c == 'C' 
    res += 100 * (res >= 500 ? -1 : 1) 
    else if c== 'D' 
    res += 500 
    else if c=='M' 
    res += 1000 
return res 

:MMDCCCXCIX

= 0 + MMDCCCXCIX

= 10 + MMDCCCXCI

= 9 + MMDCCCXC(> 5 10など)

= 109 + MMDCCCX

= 99 + MMDCCC(109> 50として)

= 199 + MMDCC

= 299 + MMDC

= 399 + MMD

= 899 + MM

= 1899 + M

= 2899

+0

ありがとうございます。しかし、変数の略語を教えてください。 –

+0

whats "res"など。 –

+0

@HaXnainNoOrani resは結果であり、cは反復処理されるローマ数字の現在の文字です。 – errorist

関連する問題