思路
- 定义两个函数 digitSquareSum(n) 用来计算一个数每个位置上的数字的平方和,isHappy(n) 函数用来判断一个数是否是快乐数。
- 在 isHappy(n) 函数中,使用两个指针 slow 和 fast,slow 指针每次计算一次平方和,fast 指针计算两次平方和。
- 如果存在循环(即出现重复的平方和),则说明不是快乐数;如果在某一步平方和为 1,则说明是快乐数。
- 最终返回结果。
代码
func digitSquareSum(n int) int {
sum := 0
for n > 0 {
digit := n % 10
sum += digit * digit
n /= 10
}
return sum
}
func isHappy(n int) bool {
slow := n
fast := n
for {
slow = digitSquareSum(slow)
fast = digitSquareSum(digitSquareSum(fast))
if slow == fast {
break
}
}
return slow == 1
}
本文介绍了如何用Python编写两个函数digitSquareSum(n)计算一个数每个位置数字的平方和,以及isHappy(n)判断一个数是否为快乐数的方法,通过双指针技巧检测循环和终止条件。
524

被折叠的 条评论
为什么被折叠?



