Persistence
Ответ:
const persistence = (num) => {
var times = 0;
num = num.toString();
while (num.length > 1) {
times++;
num = num
.split('')
.map(Number)
.reduce((a, b) => a * b)
.toString();
}
return times;
};
Объяснение:
В цикле while мы выполняем такие действия:
1) Инкрементируем счётчик times
2) Число num приводим к строке и с помощью .split('').map(Number) получаем массив чисел( '427' ---> [4,2,7])
3) Проходим через этот массив методом reduce и получаем произведение всех чисел нашего массива ( [4,2,7]--->4*2*7=56.
4) Повторяем эти действия, пока num не станет одноцифровым числом.
Код для проверки:
const persistence = (num) => {
var times = 0;
num = num.toString();
while (num.length > 1) {
times++;
num = num
.split('')
.map(Number)
.reduce((a, b) => a * b)
.toString();
}
return times;
};
console.log(persistence(39)); // 3
console.log(persistence(999)); // 4
console.log(persistence(4)); // 0