我需要帮助实现一个递归函数。这是我第一次尝试在标准的“阶乘”之外使用递归。
我能够在控制台中获得正确的答案,但我无法弄清楚如何使我的函数识别出它已经产生了正确的答案。
挑战:“编写算法确定一个数字是否为‘快乐数字’。”
一个快乐数字由以下过程定义:从任何正整数开始,用其各个数字的平方和代替该数字,并重复此过程,直到数字等于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循环并尝试不同的基本情况测试,但没有成功。任何帮助将不胜感激。