https://leetcode.cn/problems/happy-number/
/**
* @param {number} n
* @return {boolean}
*/
var isHappy = function(n) {
let set = new Set()
while (n !== 1 && !set.has(n)) {
set.add(n)
n = getSum(n)
}
return n === 1
}
var getSum = function (n) {
let sum = 0
while (n) {
sum += (n % 10) ** 2
n = Math.floor(n / 10)
}
return sum
}
/**
* @param {number} n
* @return {boolean}
*/
var isHappy = function (n) {
let pre = n, cur = getNext(n)
while (pre !== cur && pre !== 1) {
pre = getNext(pre)
cur = getNext(getNext(cur))
}
return pre === 1
}
var getNext = function (n) {
let t = 0
while (n) {
t += (n % 10) * (n % 10)
n = Math.floor(n / 10)
}
return t
}
原创文章,作者:czhdawn,如若转载,请注明出处:https://www.czhdawn.cn/archives/4839
