zoukankan      html  css  js  c++  java
  • 202. Happy Number

    Problem:

    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:

    Input: 19
    Output: true
    Explanation: 
    12 + 92 = 82
    82 + 22 = 68
    62 + 82 = 100
    12 + 02 + 02 = 1
    

    思路

    Solution (C++):

    bool isHappy(int n) {
        vector<int> res = digit(n);
        int ans = square_sum(res);
        if (ans == 1) return true;
        set<int> s;
        s.insert(ans);
        while (ans != 1) {
            res = digit(ans);
            ans = square_sum(res);
            if (ans == 1) return true;
            if (s.find(ans) != s.end()) return false;
            else s.insert(ans);
        }
        return false;
    }
    
    vector<int> digit(int n) {
        vector<int> dig;
        if (n == 0) { dig.push_back(0); return dig; }
        while (n) {
            dig.push_back(n%10);
            n /= 10;
        }
        return dig;
    }
    
    int square_sum(vector<int> &v) {
        int sum = 0;
        for (auto num: v) sum += num * num;
        return sum;
    }
    

    性能

    Runtime: 8 ms  Memory Usage: 6.8 MB

    思路

    Solution (C++):

    
    

    性能

    Runtime: ms  Memory Usage: MB

    相关链接如下:

    知乎:littledy

    欢迎关注个人微信公众号:小邓杂谈,扫描下方二维码即可

    作者:littledy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    Character 比较注意先要转换成字符串类型
    ibats注意
    初试体验java多线程
    解压jar
    Velocity语法--转载
    python 批量请求url
    java.lang.NoClassDefFoundError
    疑问
    sql常用语句--转载
    Spring AOP高级——源码实现(3)AopProxy代理对象之JDK动态代理的创建过程
  • 原文地址:https://www.cnblogs.com/dysjtu1995/p/12595554.html
Copyright © 2011-2022 走看看