标签:
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
Credits:
Special thanks to @mithmatt and @ts for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
1 public class Solution { 2 public boolean isHappy(int n) { 3 if(n < 0) return false; 4 HashSet<Integer> hs = new HashSet<Integer>(); 5 int sum = 0; 6 while(!hs.contains(n)){ 7 if(n == 1){ return true;} 8 hs.add(n); 9 while(n!=0){ 10 sum += Math.pow(n%10,2); 11 n /= 10; 12 } 13 n = sum; 14 sum = 0; 15 } 16 return false; 17 } 18 }
标签:
原文地址:http://www.cnblogs.com/guoguolan/p/5396623.html