45화 - Persistent Bugger - Codewars Kata (6큐)

어떻게 도와드릴까요?
You can support by buying a coffee ☕️
Follow me on Github

지침



일:
양수 매개변수 num을 받아서 곱셈 지속성을 반환하는 지속성 함수를 작성하세요. 이는 한 자리 수에 도달할 때까지 num의 숫자를 곱해야 하는 횟수입니다.

예시

39 --> 3 (because 3*9 = 27, 2*7 = 14, 1*4 = 4 and 4 has only one digit)
999 --> 4 (because 9*9*9 = 729, 7*2*9 = 126, 1*2*6 = 12, and finally 1*2 = 2)
4 --> 0 (because 4 is already a one-digit number)



내 솔루션:



function persistence(num) {
  let count = 0;
  while(num.toString().length > 1){
    num = num.toString().split('').reduce((acc,el)=>acc *= +el,1)
    count++
  }
  return count
}


설명



먼저 count라는 변수를 만들었습니다. 여기서 숫자를 곱해야 하는 횟수를 저장하여 한 자리만 얻습니다.

let count = 0;



그런 다음 숫자의 길이가 1이 될 때까지 반복되는 while 루프를 사용했습니다.

  while(num.toString().length > 1)



while 루프 내에서 변수 "num"을 재평가하여 숫자의 곱셈 결과를 저장했습니다. 숫자를 배열로 분할하여 이 작업을 수행한 다음 곱셈 결과를 저장하기 위해 reduce 함수를 사용했습니다. 숫자의.

Note: In the next iteration of the loop the variable "num" will be the result of the multiplication from the last digits



그 후 방금 count 변수에 하나를 추가했습니다.

  num = num.toString().split('').reduce((acc,el)=>acc *= +el,1)
  count++



결국 나는 방금 카운트를 반환했습니다.

  return count


이 솔루션에 대해 어떻게 생각하십니까? 👇🤔

Solve this Kata 👨🏽‍💻

좋은 웹페이지 즐겨찾기