Skip to content

📚 3.快乐数

💻 代码实现

typescript
/**
 * @url https://leetcode.cn/problems/happy-number/description/
 */

// notice:取模技巧  从个位开始取
const getNext = (n) => {
  let sum = 0;
  while (n > 0) {
    const digit = n % 10;
    sum += digit * digit;
    n = Math.floor(n / 10);
  }
  return sum;
};

const getSqrtNum = (num: string) => {
  let sum = 0;
  for (let i = 0; i < num.length; i++) {
    sum += Math.pow(Number(num[i]), 2);
  }
  return sum;
};
function isHappy(n: number): boolean {
  const set = new Set();
  while (true) {
    if (n === 1) {
      return true;
    }
    if (set.has(n)) return false;
    set.add(n);
    n = getSqrtNum(n.toString());
  }
}

Released under the MIT License.