快乐数定义如下:从任意一个正整数开始,计算这个数字每一位的数字的平方的和,得到一个数字;然后重复这一过程,直到这个数字收敛到1;或者陷入到一个不包含1的循环。如果能收敛到1的,就定义为快乐数。
例如,19是快乐数:
· 12 + 92 =82
· 82 + 22 =68
· 62 + 82 =100
· 12 + 02 +02 = 1
输出一个数字,判断是否是快乐数。
package happyNumber;
import java.util.ArrayList;
import java.util.Scanner;
/**
* Created by Administrator on 2015/10/30 0030.
*/
public class Solution{
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
Solution s=new Solution();
int n=scanner.nextInt();
System.out.println(s.isHappy(n));
}
public boolean isHappy(int n) {
String str=n+"";
ArrayList<String> list=new ArrayList<String>();
list.add(str);
int sum=0;
while(sum!=1) {
sum=0;
for (int i = 0; i < str.length(); i++) {
sum =sum+ (int)Math.pow(Integer.parseInt(String.valueOf(str.charAt(i))),2);
}
str = sum + "";
if(list.contains(str))
return false;
list.add(str);
}
return true;
}
}