202. Happy Number

原创 2018年04月17日 20:01:14

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

我的解法:每次计算出和,判断是否为1,不为1则判断是否在set里(在set里,则跟之前的重复,若重复了,那么永远不能为1了,返回false),

class Solution {

    public boolean isHappy(int n) {
        Set<Integer> set=new HashSet<Integer>();
int sum=n;
while (true) {
n=sum;
sum = 0;
while (n > 0) {
sum += Math.pow(n % 10, 2);
n = n / 10;
}
if(sum==1)
return true;
else
{
if(set.contains(sum))
return false;
else
set.add(sum);
}
}
    }

}


不占用额外空间的c++算法,fast和slow分别作为指针,fast每次走两步,slow只走一步,等到fast追上slow时,判断slow是否为1,用时间换空间

作者,Freezen

int digitSquareSum(int n) {
    int sum = 0, tmp;
    while (n) {
        tmp = n % 10;
        sum += tmp * tmp;
        n /= 10;
    }
    return sum;
}

bool isHappy(int n) {
    int slow, fast;
    slow = fast = n;
    do {
        slow = digitSquareSum(slow);
        fast = digitSquareSum(fast);
        fast = digitSquareSum(fast);
    } while(slow != fast);
    if (slow == 1) return 1;
    else return 0;
}

Number类

本课程介绍java.lang.Number类 详细介绍了Number类的使用,格式化,精确计算等
  • 2017年02月06日 13:33

leetcode 202 Happy Number

Write an algorithm to determine if a number is "happy". A happy number is a number defined by the fo...
  • wangyaninglm
  • wangyaninglm
  • 2015-04-29 17:06:19
  • 2918

leetcode 202: Happy Number

Happy Number Total Accepted: 3585 Total Submissions: 10859 Write an algorithm to determi...
  • xudli
  • xudli
  • 2015-04-25 07:17:51
  • 7823

LeetCode 202. Happy Number ( C++版)

Write an algorithm to determine if a number is "happy". A happy number is a number defined by the f...
  • Mary19920410
  • Mary19920410
  • 2017-03-30 15:05:29
  • 481

202. Happy Number [easy] (Python)

题目链接https://leetcode.com/problems/happy-number/题目原文 Write an algorithm to determine if a number is...
  • coder_orz
  • coder_orz
  • 2016-05-04 15:43:14
  • 2489

leetcode 202 Happy Number C++

这个题我实验的两次发现了一个规律。。。只要结果有4就不可能变成1,别的都可以。 class Solution { public: bool isHappy(int n) { ...
  • a2331046
  • a2331046
  • 2016-05-23 19:45:55
  • 423

Leetcode_202_Happy Number

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45396585 Write an algorith...
  • pistolove
  • pistolove
  • 2015-04-30 16:35:40
  • 1864

leetcode-happy number implemented in python

class Solution(object): def isHappy(self, n): if n==1: return True e...
  • xunileida
  • xunileida
  • 2015-08-22 12:52:36
  • 884

202. Happy Number Leetcode Python

Write an algorithm to determine if a number is "happy". A happy number is a number defined by the...
  • hyperbolechi
  • hyperbolechi
  • 2015-05-03 05:11:47
  • 930

[LeetCode]202. Happy Number(判断正整数是不是Happy Number)

202. Happy Number原题链接 Write an algorithm to determine if a number is “happy”.A happy number is a nu...
  • whl_program
  • whl_program
  • 2017-06-03 01:28:38
  • 214
收藏助手
不良信息举报
您举报文章:202. Happy Number
举报原因:
原因补充:

(最多只允许输入30个字)