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:
1 <= n <= 231 - 1
class Solution {
private val set = mutableSetOf<Int>()
tailrec fun isHappy(n: Int): Boolean {
var num = n
var squareSum = 0
while (num > 0) {
val digit = num % 10
squareSum += digit * digit
num /= 10
}
if (squareSum == 1) {
return true
}
if (set.contains(squareSum)) {
return false
}
set.add(squareSum)
return isHappy(squareSum)
}
}