Easy
看了discussion借鉴了一个用set来判断结束游戏的方法,如果set.add(a) return false的话,说明set里面已经有a了,此时继续游戏会无限循环根据题意可以判断不是happy number。同时,也注意一下如果写把一个整数每个位置上的数字都加起来的操作。基本上就是
while (n > 0){
digit = n%10;
sum += digit;
n /= 10;
}
完整代码:
class Solution {
public boolean isHappy(int n){
Set<Integer> set = new HashSet<>();
int sum = 0;
int digit = 0;
while (set.add(n)){
sum = 0;
while (n > 0){
digit = n % 10;
sum += digit*digit;
n /= 10;
}
if (sum == 1){
return true;
}
n = sum;
}
return false;
}
}