1 快乐树

/*** @param {number} n* @return {boolean}*/var isHappy = function(n) {const stack = []while(true) {const roundA = String(n).split('').map(t=>Number(t)).reduce((a,b)=>a+b*b,0)if(roundA === 1) return trueif(stack.includes(roundA)) return falsestack.push(roundA)n = roundA}}
roundA = String(n).split('').map(t=>Number(t)).reduce((a,b)=>a+b*b,0)
接收数值 转换字符串 在转换为数组 在通过map 求数的每个位的平方 相加
function getN(n) {if(n == 1||n==0) return n;let res = 0;while(n){res += (n%10)*(n%10);n = parseInt(n/10);}return res;}var isHappy = function(n){const sumSet = new Set();while(n !=1 && !sumSet.has(n)){sumSet.add(n);n = getN(n)}return n==1}// 快慢指针 快 的到了1 就说明是true 否则就是会循环 把慢点给等到 然后输出 falsevar isHappy = function(n){if(getN(n) == 1) return truelet a = getN(n),b = getN(getN(n));while(a!==b&&a!=1&&b!=1){a = getN(a),b = getN(getN(b))}return a===1||b===1}
易错点:函数忘记传参数 括号问题
