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;
        }
    };

  • 相关阅读:
    记uniapp在真机调试网络请求上遇到的一坑
    使用Vconsole在手机浏览器上进行console
    使用容联云通讯开发获取短信验证码功能
    WSL修改默认安装目录到其他盘
    Xdebug3 配置
    MySQL批量更新数据
    arcmap之jpg图片转tif(定义参考系)
    ColorThief之获取图片主色
    jquery之表单加载图片并预览
    ol3之添加点、线
  • 原文地址:https://www.cnblogs.com/CodingGirl121/p/5425031.html
Copyright © 2011-2022 走看看