1
我正在編碼卡塔羅馬數字定義here。雖然我已經完成並沒有卡住,但確實有一個問題,我需要幫助解答。Ruby - divmod返回正確的值,但我不明白爲什麼
這裏是我的問題坐鎮:
class Fixnum
NUMERALS = [
['V', 5], ['IV', 4], ['I', 1]
]
def to_roman
roman = ""
number = self
for key, value in NUMERALS
count, number = number.divmod(value)
roman << (key * count)
end
roman
end
end
當我在說執行divmod 5號,像這樣
5.to_roman
它返回五,這是有道理的,因爲
5.divmod(5) => 1, 0
但是這段代碼如何不與
5.divmod(1) => 5, 0
那麼它是如何返回V而不是IIIII,因爲它只是追加鍵(I)次count(5)。不知何故,它顯然正確地返回V而不是IIIII,但我不知道該邏輯在哪裏。任何幫助將不勝感激。謝謝
啊是的,它永遠不會重置號碼。出於某種原因,我沒有考慮到這一點,我應該想到這一點。是的這個代碼是不完整的任何手段。這是一個演示測試驅動開發與紅色綠色循環的卡塔,只是做基本的事情來讓測試通過。所以這個只做1-8。 – ruevaughn 2012-08-01 19:28:07