202. 快乐数
package main
import "fmt"
func isHappy(n int) bool {
n = digitResult(n)
m :=make(map[int]struct{},0)
for n!=1{
if _,ok:=m[n];!ok{
m[n]= struct{}{}
n =digitResult(n)
fmt.Println(n)
}else {
return false
}
}
return true
}
func digitResult(n int) int {
var res int
for n>0{
r :=n%10
res +=r*r
n =n/10
}
return res
}
func main() {
fmt.Println(isHappy(2))
fmt.Println(isHappy(19))
}
无法实现快乐数的数字会最终走向无限循环中,比如数字2最终会形成如下循环
4
16
37
58
89
145
42
20
4
所以需要做一个存储判断是不是走向了无限循环中