숫자의 후행 0 수를 반환해야하는이 코드가 있습니다. 내가 가지고있는 코드는 0을 반환 할 때 0을 반환합니다. 무슨 일이 일어나고 있는지 확실히 알 수 없습니다. 도움이되는 사람들?왜이 Ruby Kata는 2 대신 0을 반환합니까?
def trailing_zeros(number)
sort_sum = number.to_s.split(//).reverse
counter = 0
until sort_sum[counter] == "0"
counter += 1
return counter
end
end
---------- 나는 루프까지 내 내부에서 반환 카운터를 제거하고 여전히 얻을 것
편집 ------------ 결과.
이I 1200에 넣으면
def trailing_zeros(number)
sort_sum = number.to_s.split(//).reverse
counter = 0
until sort_sum[counter] == "0"
counter += 1
end
return counter
end
, I 2를 얻을 생각 해요,하지만 난 ----------- EDIT 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
끝
내가이 입력 0을 점점 계속 제로 (12)
을두고 난 그냥 이유를 모르겠어요. 처음에는 0으로 정의해야하는 후행 0이 있다고 생각했기 때문에 그렇지만 스택 레벨이 너무 깊은 오류가 발생했습니다. 이 라인을보고 싶습니다 :
trailing_zeros(n) if n == 1
항상 0이 전달됩니다. 나는이 점에서 나의 기초를 알아야하기 때문에 좌절감을 느낀다. 추가 질문입니다. 스택 레벨이 너무 깊은 오류를 구성하는 것은 무엇입니까?
루프 내에서 'return counter'를 사용하면 루프가 완료되기 전에 메소드가 종료됩니다. – Cereal