202. 快乐数

package mainimport "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 intfor n>0{r :=n%10res +=r*rn =n/10}return res}func main() {fmt.Println(isHappy(2))fmt.Println(isHappy(19))}
无法实现快乐数的数字会最终走向无限循环中,比如数字2最终会形成如下循环
4
16
37
58
89
145
42
20
4
所以需要做一个存储判断是不是走向了无限循环中


