Итак, я сейчас нахожусь на подготовительном курсе, и многие возможные проблемы с leetcode, которые могут возникнуть во время экзамена, связаны с такими вещами, как факториалы и числа.
Например, это одна из проблемы
Напишите функцию, постоянство, которая принимает положительный параметр num и возвращает его мультипликативную стойкость, то есть количество раз, которое вы должны умножить цифры в num, пока не достигнете единственного di git. Например:
persistence(39) === 3 // because 3*9 = 27, 2*7 = 14, 1*4=4
// and 4 has only one digit
persistence(999) === 4 // because 9*9*9 = 729, 7*2*9 = 126,
// 1*2*6 = 12, and finally 1*2 = 2
persistence(4) === 0 // because 4 is already a one-digit number
Теперь мой вопрос: я знаю, что мы можем использовать что-то вроде этого
var arr = num.toString().split('');
И это даст нам arr строк, и мы можем просто вызовите что-то подобное в l oop
for (var i = 0; i < arr.length; i++) {
var currentNum = Number(arr[i]);
}
Но я изо всех сил пытаюсь понять, как я могу реализовать, может быть, некоторое время l oop или какое-то условие, чтобы продолжить l oop через проблема.
Например, в этом случае 39 станет
39-> 3*9 | (27) 27-> 2*7 | (14) 14-> 1*4
Однако я изо всех сил пытаюсь понять, как на самом деле делать непрерывный l oop. Например, если это где-то просто сделать один l oop Я могу это сделать, но я потерялся в рекурсии.
Если бы кто-нибудь мог провести меня через это с некоторым уровнем детализации, это было бы действительно полезно, спасибо!