我不得不進行分配,其中,我要實現與同時做他們的計算方法,是遵循的規則沿着羅馬數字,此鏈接中包含羅馬數字計算器
http://www.periodni.com/roman_numerals_converter.html
我不想要代碼,只是幫助。我已經有兩個方法至今:
- 使用常量,我已經宣佈了羅馬數字爲常數,然後獲取輸入後,我留下選擇的字符串輸入解碼,這是我後來放棄。
- 使用散列。我已經用數字聲明瞭散列,然後在得到輸入後,我使用to_sym方法將字符串轉換爲相應的值。在此之後,我收集了一個包含羅馬數字小數的數組,我打算將這些數字與輸入進行比較。 我被困在這個部分。我不知道如何在這裏比較。另外,我不想對輸入數組進行排序,因爲然後計算會出錯。
誰能幫助我如何進行?不是代碼,只是步驟。
這是我迄今所做的:
class Conversion
hash ={ :I => 1, :V => 5, :X => 10, :L => 50, :C => 100, :D => 500, :M => 1000}
result = 0
value = []
hash_values = hash.values
puts "enter input string"
input = gets.chomp.upcase.split(//)
input.each do |i|
value << hash[i.to_sym]
end
for i in value do
if value[i] > value[i+1]
result = result + value[i]
else
result = result + (value[i+1] - value[i])
end
end
puts result
end
如果妳運行的代碼,你會看到,雖然我儘量在最後一個循環來比較它走的是指數的計算。當我嘗試使用兩個哈希來做同樣的事情時也是如此。我不能使用任何寶石或外部庫,因爲這是要求。
你能澄清你想要完成什麼,也許發佈一些你一直在使用的代碼? – Xenotoad
@Xenotoad請檢查我是否發佈了驗證碼。 – Niyanta
也http://codereview.stackexchange.com/questions/7937/roman-numeral-converter見 – knut