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

    【题目】

      写一个算法判断一个数是否"happy"

      一个"happy"数的定义如下:开始于任意一个正整数,将该数替换为所有位上的数的平方和,然后重复这个过程直到这个数等于1,或者它可能无限循环(不包括1),这些结束于1的为"happy"数

      举例: 19是一个"happy"数

        12+92=82

          82+22=68

        62+82=100

        12+02+02=1

    【分析】

      1.主要的问题是如何结束循环

      2.记录一个HashMap,将每次计算过后的数存入map中,当下一次遇到就直接返回false

    【算法实现】

    public class Solution {
        public boolean isHappy(int n) {
            Map<Integer,Boolean> map = new HashMap<Integer,Boolean>();
            int sum = helper(n);
            while(sum != 1) {
                if(map.get(sum) != null && map.get(sum) == true) {
                    return false;
                }
                map.put(sum,true);
                sum=helper(sum);
            }
            return true;
        }
        
        public int helper(int n) {
            int res = 0;
            while(n != 0) {
                int i = n%10;
                res += i*i;
                n = n/10;
            }
            return res;
        }
    }
  • 相关阅读:
    WAMP Apache 2.5 配置虚拟主机
    DOM对象
    BOM对象
    JS内置对象
    CSS定位
    CSS浮动和清除
    浏览器兼容性
    垂直居中
    水平居中总结
    长度值
  • 原文地址:https://www.cnblogs.com/hwu2014/p/4519582.html
Copyright © 2011-2022 走看看