29 lines
348 B
Go
29 lines
348 B
Go
package q202
|
|
|
|
type void struct{}
|
|
|
|
func next(n int) int {
|
|
ret := 0
|
|
for n > 0 {
|
|
digit := n % 10
|
|
n /= 10
|
|
ret += digit * digit
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func isHappy(n int) bool {
|
|
seen := map[int]void{n: {}}
|
|
for {
|
|
n = next(n)
|
|
if n == 1 {
|
|
return true
|
|
}
|
|
if _, ok := seen[n]; ok {
|
|
return false
|
|
}
|
|
seen[n] = void{}
|
|
}
|
|
}
|
|
|
|
var _ = isHappy
|