力扣202-JS快乐数

https://leetcode.cn/problems/happy-number/

力扣202-JS快乐数

力扣202-JS快乐数

/**
 * @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

(0)
czhdawn的头像czhdawn
上一篇 2025年7月23日 23:05
下一篇 3天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注