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