本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45396585
Write an algorithm to determine if a number is "happy".
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example: 19 is a happy number
思路:
(1)题意为判断给定的整数是不是为1个“快乐的数”,所谓快乐的数需要满足1下几个条件:将该整数的每一个位上的数字的平方相加得到1个新的整数,循环对新的整数进行上述操作,如果最后所得整数收敛于1,则这样的数字为1个“快乐的数”。
(2)首先,判断0肯定不是1个“快乐的数”;其次,对初始数字的每一个位上数的平方相加,循环进行前面的操作;需要注意的是,对可能会出现死循环的数字需要进行判断,需要判断循环的次数,这里通过测试得到循环次数为4,即如果4次循环进程中,每次所得数字中都不收敛于1,则判断该数字不是1个“快乐的数”,否则,则是1个“快乐的数”;最后,对那些循环得到的结果为1的数字,直接返回true,即该数字是1个“快乐的数”。
(3)详情见下方代码。希望本文对你有所帮助。
算法代码实现以下: