zoukankan      html  css  js  c++  java
  • 202. Happy Number

    原题链接:https://leetcode.com/problems/happy-number/description/
    实现如下:

    import java.util.HashSet;
    
    /**
     * Created by clearbug on 2018/2/26.
     */
    public class Solution {
    
        public static void main(String[] args) {
            Solution s = new Solution();
            System.out.println(s.isHappy(1));
            System.out.println(s.isHappy(2));
            System.out.println(s.isHappy(19));
        }
    
        /**
         * 方法一:这道题目没看出啥太大的规律性,只简单的发现只要 n % 10 == 0 时,那么便是返回 true 的时候了;同时为了防止无限循环,必须用
         * 一个数组来存储处理过的数值,若出现循环了则返回 false;
         *
         * @param n
         * @return
         */
        public boolean isHappy(int n) {
            HashSet<Integer> set = new HashSet<>();
    
            while (set.add(n)) {
                if (n == 1) {
                    return true;
                }
    
                n = nextN(n);
            }
    
            return false;
        }
    
        private int nextN(int n) {
            int res = 0;
            while (n >= 10) {
                int remainder = n % 10;
                res += remainder * remainder;
                n /= 10;
            }
            if (n > 0) {
                res += n * n;
            }
            return res;
        }
    }
    
  • 相关阅读:
    第十二周作业
    第九周作业
    第八周作业
    第七周作业
    第六周作业
    参考博文地址
    第五周作业
    用例设计思路
    测试方法的四大金刚
    网络模型及访问过程
  • 原文地址:https://www.cnblogs.com/optor/p/8691946.html
Copyright © 2011-2022 走看看