`
SunnyYoona
  • 浏览: 365067 次
社区版块
存档分类
最新评论

[LeetCode]202.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

思路

代码

/*---------------------------------------------------------
*   日期:2015-04-22
*   作者:SJF0115
*   题目: 202.Happy Number
*   网址:https://leetcode.com/problems/happy-number/
*   结果:AC
*   来源:LeetCode
*   博客:
------------------------------------------------------------*/
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

class Solution {
public:
    bool isHappy(int n) {
        if(n == 1){
            return true;
        }//if
        if(n == 0){
            return false;
        }//if
        return Recursion(n);
    }
private:
    vector<int> visited;
    bool Recursion(int n){
        if(n == 1){
            return true;
        }//if
        int num = n;
        int tmp,value = 0;
        while(num){
            tmp = num % 10;
            value += tmp * tmp;
            num /= 10;
        }//while
        // 判断是否形成圈
        vector<int>::iterator result = find(visited.begin(),visited.end(),value);
        if(result != visited.end()){
            return false;
        }//if
        visited.push_back(value);
        return Recursion(value);
    }
};

int main(){
    Solution solution;
    int n = 2;
    if(solution.isHappy(n)){
        cout<<n<<" is Happy Number"<<endl;
    }//if
    else{
        cout<<n<<" is not Happy Number"<<endl;
    }
    return 0;
}

运行时间

这里写图片描述

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    leetcode202-LeetCode202_HappyNumber:判断一个数是否为happynuumber,所谓happynumber是

    LeetCode202_HappyNumber 判断一个数是否为happy nuumber,所谓happy number是指一个数,将其替换为其各位数字的平方和,重复这个过程,如果最终能得到1,这就是happy number;如果陷入一个不包含1的循环中,就不是...

    LeetCode最全代码

    268| [Missing Number](https://leetcode.com/problems/missing-number/) | [C++](./C++/missing-number.cpp) [Python](./Python/missing-number.py) | _O(n)_ | _O(1)_ | Medium | LintCode || 318| [Maximum ...

    leetcode有效期-algorithmTask:算法任务

    Number(202)!(要求全部用哈希思想实现!)(选做)(注意:在第四天会进行继续学习) 链表 实现单链表、循环链表、双向链表,支持增删操作 实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的中间...

    leetcode不会-ts-prep::puzzle_piece:一个TypeScriptstarter,用于通过测试驱动开发解决LeetCode问题

    leetcode 不会准备工作 :puzzle_piece: 用于通过测试驱动开发解决 LeetCode 问题的 TypeScript ...Happy Number ' 关于这个脚本这个 repo 带有一个脚本,可以为新的 LeetCode 问题快速设置启动文件

    leetcode跳跃-algorithm:leetcode

    happyNumber array 155 minStack stack 111 二叉树的最小深度 , tree 110 平衡二叉树 tree 104 二叉树的最大深度 tree 100 相同的树 tree 94 二叉树的中序遍历 tree 70 爬楼梯 dp 53 最大子序和 dp 26 删除排序数组...

    leetcode:记录我的leetcode代码

    ##leetcode by xiexiaodong## ...按照题目首字母包含在对应的文件夹内 如Happy Number 则包含在H文件夹内 一般情况下使用JAVA或者Python(没办法,就这两个擅长点 注释尽量写上,题目看心情来刷,太简单的就不贴了

    leetcode有效期-Datawhale-Coding:Datawhale-编码

    Number(202)!(要求全部用哈希思想实现!)(选做)(注意:在第四天会进行继续学习) 【链表】 实现单链表、循环链表、双向链表,支持增删操作 实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的...

    LeetCode判断字符串是否循环-SimpleAlgorithm:简单算法

    判断是否为HappyNumber,输入一个数,将该数的各个位数进行平方,然后求和,再取各个位数进行平方,再求和,直到为1(此时平方求和不再改变),则为HappyNumber。如果结果是某些无限循环的非1的值,则不是Happy...

    lrucacheleetcode-LeetCode_30Day:力扣30天挑战赛

    lru缓存leetcode 力扣_30天 力扣 30 天挑战赛 日 问题描述 问题和解决方案链接 Git 解决方案页面 1 SINGLE NUMBER 2 HAPPY NUMBER 3 MAXIMUM SUBARRAY 4 Move Zeroes 5 Best Time to Buy and Sell Stock II 6 GROUP ...

    leetcode卡-Programming:编程

    leetcode卡 Programming 课程设计:光城 ...Number(202)!(要求全部用哈希思想实现!)(选做)(注意:在第四天会进行继续学习) 练习: Three Sum(求三数之和) Majority Element(求众数) Missi

    leetcode2sumc-DataWhale_exercise:用C++编程

    Number(202)!(要求全部用哈希思想实现!)(选做)(注意:在第四天会进行继续学习) 【链表】 实现单链表、循环链表、双向链表,支持增删操作 实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的...

    OneLeetcodeADay:一天一次leetcode,并学习golang btw

    04-23从Alphabet到IntegerMapping的DecryptString 2020-04-25合并两个已排序的NodeList Fibonacci 2020-04-26查找ContinuousSequence MaximunNum 2020-04-28递归多态2020-04-30 HappyNumber 2020-05-01 AddBinary ...

    leetcode爬楼梯排列组合解法-algorithm_practice:对数据结构、算法相关的编程实践(DataStructureandAl

    Number(202)!(要求全部用哈希思想实现!) 2、链表 实现单链表、循环链表、双向链表 支持增删操作 实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的中间结点 实现:assignment1 【任务2 - 栈、...

    validnumberleetcode自动机-LearingTripofNoah:我自己的学习之旅,天天学习至此方休

    学习哈希表思想,并完成leetcode上的两数之和(1)及Happy Number(202)! 2. 链表 实现单链表、循环链表、双向链表,支持增删操作 实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的中间结点 附加...

    cpp-算法精粹

    Happy Number Ugly Number Ugly Number II Super Ugly Number Fraction to Recurring Decimal Factorial Trailing Zeroes Nim Game 模拟 Reverse Integer Palindrome Number Insert Interval Merge Intervals ...

    validnumberleetcode自动机-code_with_py:编程任务

    学习哈希表思想,并完成leetcode上的两数之和(1)及Happy Number(202)!(要求全部用哈希思想实现!)(选做)(注意:在第四天会进行继续学习) 【链表】 实现单链表、循环链表、双向链表,支持增删操作 实现单链表...

    validnumberleetcode自动机----:数据结构打卡

    学习哈希表思想,并完成leetcode上的两数之和(1)及Happy Number(202)!(要求全部用哈希思想实现!)(选做)(注意:在第四天会进行继续学习) 【链表】 实现单链表、循环链表、双向链表,支持增删操作 实现单链表...

    lrucacheleetcode-DataStructure:数据结构

    Number(202)!(要求全部用哈希思想实现!)(选做)(注意:在第四天会进行继续学习) 链表 实现单链表、循环链表、双向链表,支持增删操作 实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的中间...

Global site tag (gtag.js) - Google Analytics