这个才是今天的题目,题目如下:
根据题目,当最后得出的结果是1, 那么输入的数是 Happy Number, 如果在推理过程中,出现之前出现的而且不是 1 的结果,那么就意味着推理陷入了死循环,那么输入的
数就不是 Happy Number。 根据这个思路,我们可以得出代码如下:
/** * @param {number} n * @return {boolean} */ var isHappy = function(n) { let cur = n; if(n == 1) return true; let sumset = new Set(); while(cur != 1 && cur > 0){ let sum = 0; while(cur > 0){ let rem = cur % 10; sum += rem*rem; cur=parseInt(cur/10); } if(sum == 1) return true; if(sumset.has(sum)) return false; else sumset.add(sum); cur = sum; } return true; };
那么今天就到这里了。