快乐数的定义是:对于一个正整数,每次将该数替换为它每个数字的平方和,重复这个过程直到这个数变为1
private static void isHappy(int value){
if (value>9){
NumberL numbers = getNumber(value);
if (numbers!=null){
NumberL lNum = numbers.next;
System.out.println(numbers.value);
int first = (int) Math.pow(numbers.value,2);
int sum = first;
while (lNum!=null){
System.out.println(lNum.value);
first = (int) Math.pow(lNum.value,2);
sum = sum+first;
System.out.println(sum);
lNum = lNum.next;
}
if (sum>9){
isHappy(sum);
}else{
System.out.println("sum="+sum);
}
}else{
System.out.println(value);
}
}else{
System.out.println(value);
}
}
private static NumberL getNumber(int value){
NumberL numL = new NumberL(0);
NumberL next;
NumberL first = numL;
if (value>9){
while (value>0){
int val = value%10;
next = new NumberL(val);
first.next = next;
first = next;
value = value/10;
}
}else{
numL.next = new NumberL(value);
}
return numL.next;
}
class NumberL{
int value;
NumberL next;
public NumberL(int value) {
this.value = value;
}
}