Здравствуйте.
Программа должна реализовать поразрядное умножение целого положительного числа, пока не останется 1 разряд и выдать количество шагов до этого результата. Пример:
99999=>59049=>0===2 шага // 9*9*9*9*9=>5*9*0*4*9=>0;
13=>3===1 шаг // 1*3=>3;
999=>729=>126=>12=>2===4 шага // 9*9*9=>7*2*9=>1*2*6=>1*2=>2;
7=>7===0 шагов //
Можно ли в рекурсию вставить счетчик вызовов функции ?
let steps = 0;
function umnozhenie(x) {
steps += 1;
x = String(x).match(/[0-9]/g).map(Number).reduce((a, b) => a * b);
if (x >= 10) { x = umnozhenie(x); };
return steps;
}
Программа показывает неправильные результаты при больших числах. Но если в
return
ставлю саму функцию, то получаю правильное значение конечного разряда.
С циклом работать не умею.