Persistence

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



Report Page