LeetCode in TypeScript

202. Happy Number

Easy

Write an algorithm to determine if a number n is happy.

A happy number is a number defined by the following process:

Return true if n is a happy number, and false if not.

Example 1:

Input: n = 19

Output: true

Explanation:

12 + 92 = 82

82 + 22 = 68

62 + 82 = 100

12 + 02 + 02 = 1

Example 2:

Input: n = 2

Output: false

Constraints:

Solution

function isHappy(n: number): boolean {
    let a = n
    let rem: number
    let sum = 0
    if (a === 1 || a === 7) {
        return true
    } else if (a > 1 && a < 10) {
        return false
    } else {
        while (a !== 0) {
            rem = a % 10
            sum += rem * rem
            a = Math.floor(a / 10)
        }
        return sum === 1 ? true : isHappy(sum)
    }
}

export { isHappy }