一、题目
二、代码
class Solution
{
public boolean isHappy(int n)
{
if(n == 1) return true;
Set<Integer> sets = new HashSet<>();
int temp_num = 0;
temp_num = GetNextNum(n);
System.out.println("temp_num " +temp_num);
while(temp_num!=1 )
{
temp_num = GetNextNum(temp_num);
if(sets.contains(temp_num)) return false;
else sets.add(temp_num);
}
return true;
}
public int GetNextNum(int n)
{
int temp = n;
int sum = 0;
int temp_every = 0;
while(temp!=0)
{
temp_every =temp %10;
temp = temp/10;
sum += temp_every * temp_every;
}
return sum;
}
}
三、运行结果
四、附录
二刷
class Solution
{
public boolean isHappy(int n)
{
int temp_n = n;
Set<Integer> set1 = new HashSet<>();
while(n!=1)
{
int sum = 0;
while(temp_n!=0)
{
int temp = temp_n%10 ;
temp_n = temp_n / 10 ;
sum+= temp*temp;
}
temp_n = sum;
// System.out.println(" sum " + sum);
if(sum == 1) break;
if(!set1.contains(sum)) set1.add(sum);
else return false;
}
return true;
}
}