快乐数
解题思路:
func isHappy(n int) bool {
for n != 1 { // 当n不等于1时,继续循环
if n == 4 { // 如果n等于4,返回false
return false
}
n = next(n) // 计算n的下一个数
}
return n == 1 // 如果n最终等于1,返回true
}
// next 返回 n 的各个位上数字的平方和
func next(n int) int {
sum := 0
for n > 0 { // 当n大于0时,继续循环
digit := n % 10 // 取n的个位数字
sum += digit * digit // 将个位数字的平方加到sum上
n /= 10 // 将n的个位数字去掉
}
return sum // 返回各个位上数字的平方和
}复杂度分析
最后更新于