Мне нужна помощь в реализации рекурсивной функции. Это моя первая попытка рекурсии за пределами стандартного факториала, который впервые изучают нас, новичков.
Я могу получить правильный ответ в консоли, но не могу понять, как сделать свою функцию признать, что он дал правильный ответ.
Задача: «Напишите алгоритм, чтобы определить, является ли число« счастливым ».
Счастливое число - это число, определяемое следующим процессом: Начиная с любого положительного целого числа, замените число на сумму квадратов его цифр и повторяйте процесс до тех пор, пока число не станет равным 1 (там, где оно останется), или пока оно не зациклится в цикле, который не содержит 1. Эти числа для которого этот процесс заканчивается в 1 - это счастливые числа. "
Моя попытка:
let num = 19;
let isHappy = (n) => {
let sNum = `${n}`;
let sArray = sNum.split('');
let nArray = sArray.map(el => Number(el))
let total = nArray.reduce((acc, curr) => {
return acc += curr * curr
}, 0);
if(isHappy(total) === 1) {
return true
} else {
return false
}
}
isHappy(num)
Я использовал циклы while и делал разные попытки при выполнении теста базового случая, но не повезло , Любая помощь будет принята с благодарностью.