先贴我自己的代码递归的思想,把用过的数都记下来
public class Solution {
public boolean isHappy(int n) {
if(n == 1){
return true;
}else{
List<Integer> stack = new ArrayList<Integer>();
stack.add(n);
return judge(n,stack);
}
}
public boolean judge(int n,List<Integer> stack){
if(n == 1){
return true;
}
List<Integer> split = new ArrayList<Integer>();
int newNum = 0;
while(n!=0){
int test = n%10;
//System.out.println(test);
split.add(test);
//System.out.println(split);
n = n/10;
}
for (Integer key : split){
newNum += Math.pow(key,2);
}
if(stack.contains(newNum)){
return false;
}else{
stack.add(newNum);
//return isHappy(newNum);
return judge(newNum,stack);
}
}
}
2016/8/27