Description:
Write a function, persistence, that takes in a positive parameter num and returns its multiplicative persistence, which is the number of times you must multiply the digits in num until you reach a single digit.
For example (Input --> Output):
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 i = 0;
while(num.toString().length !== 1) {
num = num.toString().split('').reduce((acc,cur) => acc * cur);
i++;
}
return i;
}
while 문을 사용해주었다. 조건을 주어진 숫자의 길이가 1이 아닐때까지 반복하는것으로 설정하였다.
(num.toString().length !== 1)
그다음에는 주어진 숫자 num을 각 자릿수마다 하나씩 잘라서 새로운 배열에 넣어준 다음에
num.toString().split('')
reducer를 사용해서 배열의 각각의 요소들을 곱해주었다.
reduce((acc,cur) => acc * cur)
주어진 숫자의 길이가 1이 되면 이 반복문은 종료가 되는것이기 때문에 i++을 사용해서 총 몇번 반복되었는지를 구했다.
'코테연습' 카테고리의 다른 글
32.Your order, please (0) | 2022.04.07 |
---|---|
31.Replace With Alphabet Position (0) | 2022.04.07 |
29.Take a Ten Minutes Walk (0) | 2022.04.04 |
28.Duplicate Encoder (0) | 2022.04.04 |
27.Counting Duplicates (0) | 2022.04.03 |
댓글