exercise(leetcode): 202

This commit is contained in:
Felipe Martin 2022-08-12 12:10:36 +02:00
commit 583eb46e84
Signed by: fmartingr
GPG Key ID: 716BC147715E716F
2 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,34 @@
# 202. Happy number
Write an algorithm to determine if a number `n` is happy.
A happy number is a number defined by the following process:
- Starting with any positive integer, replace the number by the sum of the squares of its digits.
- Repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1.
- Those numbers for which this process ends in 1 are happy.
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`

View File

@ -0,0 +1,26 @@
package main
import (
"fmt"
)
func isHappy(n int) bool {
if n < 11 {
return n == 1 || n == 7 || n == 10
}
var number int
for n > 0 {
number += (n % 10) * (n % 10)
n /= 10
}
return isHappy(number)
}
func main() {
fmt.Println(isHappy(2))
fmt.Println(isHappy(7))
fmt.Println(isHappy(10))
fmt.Println(isHappy(19))
}