zoukankan      html  css  js  c++  java
  • Leetcode题目:Happy Number

    题目:

    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

    • 12 + 92 = 82
    • 82 + 22 = 68
    • 62 + 82 = 100
    • 12 + 02 + 02 = 1

    题目解答:不断计算num各位数字的平方和,直到进入循环或最终结果为1,并返回对应的结果。

    代码如下:

    class Solution {
    public:
        bool isHappy(int n) {
            if(n <= 0)
                return false;
            unordered_set<int> num_set;
            while((n != 1) && (num_set.find(n) == num_set.end() ) )
            {
                num_set.insert(n);
                n = getSum(n);
            }
            if(n == 1)
            {
                return true;
            }
            else
                return false;
           
        }
       
        int getSum(int n)
        {
            int sum = pow((n % 10),2) ;
            while(n / 10 != 0)
            {
                n = n / 10;
                int tmp = pow((n % 10),2);
                sum += tmp;
               
            }
            return sum;
        }
    };

  • 相关阅读:
    Citrix Receiver running on my mobile phone
    is undfined javascript error
    系统架构设计随笔
    计算机与数理化“最高”期刊之比较zt
    Tikhonov regularization
    关于Likelihood 和 Probability的差别
    Cross Validation
    八卦 Knuth zt
    Eclipse切换IDE界面语言
    数学家对数学的论述
  • 原文地址:https://www.cnblogs.com/CodingGirl121/p/5425031.html
Copyright © 2011-2022 走看看