D128202.快乐数字题目链接202.快乐数字题目分析补充。相加直到和为1就是快乐数快乐数返回真,如果得到一个循环则返回假。解题思路我觉得这个题目的“难点”在于如何认识循环。比较简单的方法是把所有计算的和记录到一个数组中,每次计算和的时候判断是否已经发生,就可以知道是不是循环了。这种方案的缺点是每次计算都需要遍历数组。我想找到另一种方法来改变方法。我先分析100以内的数字,哪些数字符合要求。通过计算发现,当和为100时,只能从68或86中得到。而这两个数是从28或82中得出的。那么就有19和91。而这两个数不能通过取将100以内的数字的每一位分开并求平方和。我们可以画出一条链,如19/91=>28/82=>68/86=>100。同理还有另外两条链:7/70=>49/94=>79/97=>130=>1044=>23/32=>13/31=>10链中出现的数可以保证最后得到1。所以我们保存这些数字以供比较。一旦在计算过程中出现这个数字,就说明这个数字一定是幸福的数字。最终代码100);如果(in_array($total,$safe)){返回真;}返回假;}}如果您觉得本文对您有用,欢迎用爱心募捐。
