题解 | #奶牛快乐数#
奶牛快乐数
https://www.nowcoder.com/practice/d91cec70c7724a7dbcea02ed25bdeaee
知识点
哈希
解题思路
将n转换为String,遍历字符串的每一位平方起来加到sum上,并将每一次的sum保存到set中,如果某一次sum等于1返回true,如果某一次的sum出现过在set中,返回false。
Java题解
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return bool布尔型
*/
public boolean isHappy (int n) {
// write code here
Set<Integer> set = new HashSet<>();
while(true){
if (n == 1){
return true;
}
if (set.contains(n)){
return false;
}
String s = String.valueOf(n);
int sum = 0;
for(int i = 0; i < s.length(); i++){
sum += (s.charAt(i) - '0') * (s.charAt(i) - '0');
}
n = sum;
set.add(sum);
}
}
}