LeetCode-in-Go

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

func isHappy(n int) bool {
	if n == 1 || n == 7 {
		return true
	}
	if n > 1 && n < 10 {
		return false
	}
	sum := 0
	a := n
	for a != 0 {
		rem := a % 10
		sum += rem * rem
		a /= 10
	}
	if sum != 1 {
		return isHappy(sum)
	}
	return true
}