码迷,mamicode.com
首页 > 移动开发 > 详细

202. Happy Number

时间:2016-07-21 08:42:48      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

写一个digitSum的辅助函数,设一个曾经出现过的set,如果digit sum之后的数是曾经出现过的,就说明会出现循环,不会变成1,退出,返回false,否则循环

辅助函数和今天的reverse Integer一种操作方法,最后一位数字是n % 10, n更新为n/10,退出条件是n != 0

 1     public boolean isHappy(int n) {
 2         Set<Integer> seen = new HashSet<Integer>();
 3         int sum = sumDigits(n);
 4         while(!seen.contains(sum)) {
 5             if(sum == 1) {
 6                 return true;
 7             }
 8             seen.add(sum);
 9             sum = sumDigits(sum);
10         }
11         return false;
12     }
13     
14     private int sumDigits(int n) {
15         int res = 0;
16         while(n != 0) {
17             res += Math.pow((n % 10), 2);
18             n /= 10;
19         }
20         return res;
21     }

 

202. Happy Number

标签:

原文地址:http://www.cnblogs.com/warmland/p/5690383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!