题解 | #奶牛快乐数#
奶牛快乐数
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); } } }