OJ Lintcode 快乐数

作者: DayDayUpppppp | 来源:发表于2017-02-19 19:48 被阅读9次

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

    image.png
    class Solution {
        
    public:
        /**
         * @param n an integer
         * @return true if this is a happy number or false
         */
        bool isHappy(int n) {
            // Write your code here
            int sum = n;
            
            while(true)
            {
                sum = numSum(sum);
                if(sum == 4)
                {
                    break;
                }
                
                if(sum == 1)
                {
                    return true;
                }
            }
            
            
            return false;
        }
        
        int numSum(int n)
        {
            int sum = 0;
            int x;
            while(n != 0)
            {
                x = n % 10;
                n = n /10;
                sum += x * x;
            }
            
            return sum;
        }
    };
    

    相关文章

      网友评论

        本文标题:OJ Lintcode 快乐数

        本文链接:https://www.haomeiwen.com/subject/teijwttx.html