exercise(leetcode): 202
This commit is contained in:
commit
583eb46e84
|
@ -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`
|
|
@ -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))
|
||||
}
|
Loading…
Reference in New Issue