我有这个代码应该返回一个数字的尾部零的数量。我的代码返回0时,它应该返回2.不太确定发生了什么。有些人帮助家伙?这个Ruby Kata为什么会返回0而不是2?
def trailing_zeros(number)
sort_sum = number.to_s.split(//).reverse
counter = 0
until sort_sum[counter] == "0"
counter += 1
return counter
end
end
---------- ------------编辑
我已经删除了复原计数器从我里面,直到环,仍然没有得到结果。
def trailing_zeros(number)
sort_sum = number.to_s.split(//).reverse
counter = 0
until sort_sum[counter] == "0"
counter += 1
end
return counter
end
如果我把在1200,我应该得到2,但我不断收到0
-----------编辑--------
嘿家伙,我还有一个问题。所以我试图理解为什么上面的函数和这个新函数不起作用。
def zeros(n)
trailing_zeros(n) if n == 1
zeros(n-1) * n
end
def trailing_zeros(number)
sort_sum = number.to_s.split(//).reverse
counter = 0
until sort_sum[counter] != "0"
counter += 1
end
return counter
末
提出零(12)
我也不断收到此输入一个零,我只是不知道为什么。起初,这是因为我认为尾随零函数需要被零定义,但是我只是得到一个堆栈级别太深的错误。当我使用require pry并看一下这一行时:
trailing_zeros(n) if n == 1
零始终传递给它。我感到沮丧,因为我应该知道我的基本知识。还有一个问题。什么构成了堆栈级别太深的错误?
在循环内使用'return counter'将在循环结束前退出该方法。 – Cereal