解题思路:
1)和addDigits()类似;当前结果为1表示该数是块乐数,否则执行2);
2)增加一个HashMap(记录每次计算的结果),判断当前值在Map中是否已经存在,若存在则不是快乐数,否则把当前结果加入HashMap;
public boolean isHappy(int num){
//return 1+(num-1)%9;
if(num==1){
return true;
}
HashMap<String, Integer> map=new HashMap<>();
map.put(""+num, num);
while(true){
int temp=0;
while(num>0){
temp=temp+num%10;
num=num/10;
}
if(temp==1){
return true;
}else{
if(map.containsValue(temp)){
return false;
}else{
map.put(temp+"", temp);
num=temp;
}
}
}
}