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