我有這個代碼應該返回一個數字的尾部零的數量。我的代碼返回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