Algorithm/codewars

Number of trailing zeros of N! 답안

Bonita SY 2021. 3. 29. 20:56
728x90
반응형

문제)

www.codewars.com/kata/52f787eb172a8b4ae1000a34/solutions/javascript

 

Codewars: Achieve mastery through challenge

Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.

www.codewars.com

 

 

내가 푼 답)

function zeros (n) {
  let result = 0;
  
  for (let i=5; i<=n; i+=5) {    
    result += divide5(i, 0);
  }
  
  return result;
}

function divide5(num, cnt) {
  if ((num < 5) || (num % 5 !== 0)) {
    return cnt;
  }
  
  return divide5(num/5, cnt+1)
}

위 소스는 테스트는 모두 통과해도 성능 이슈가 있었다.

 

그래서 다른 사람 소스 참조

function zeros(n) {
  if (n==0) return 0;
  return parseInt(n/5) + zeros(parseInt(n/5));
}

 

 

테스트 결과)

 

 

 

 

마음에 드는 다른 사람 소스)

라이브러리를 잘 사용하장,.

728x90
반응형

'Algorithm > codewars' 카테고리의 다른 글

Directions Reduction 답안  (0) 2021.03.30
Sum by Factors 답안  (0) 2021.03.30
Permutations 답안  (0) 2021.03.29
Recover a secret string from random triplets 답안  (0) 2021.03.29
Greed is Good 답안  (0) 2021.03.24