202-快乐数
访问量:200

一、题目

题目地址:https://leetcode.com/problems/happy-number/submissions/

编写一个算法来判断一个数是不是“快乐数”。

一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。


示例: 

输入: 19

输出: true

解释: 

12 + 92 = 82

82 + 22 = 68

62 + 82 = 100

12 + 02 + 02 = 1

二、解法

func isHappy(n int) bool {
	if n < 10 {
        return n == 1 || n == 7
	}
	var rs int = 0
	for {
		if n > 0 {
			tmp := n % 10
			rs += tmp * tmp
			n = n / 10
		} else if rs >= 10 {
			n = rs
			rs = 0
		} else {
            return rs == 1 || rs == 7
		}
	}
}