zoukankan      html  css  js  c++  java
  • Lc202_快乐数

     1package 哈希;
    2
    3import java.util.HashSet;
    4import java.util.Set;
    5
    6/**
    7 * 202. 快乐数
    8 * 编写一个算法来判断一个数 n 是不是快乐数。
    9 * <p>
    10 * 「快乐数」定义为:
    11 * <p>
    12 * 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
    13 * 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
    14 * 如果 可以变为  1,那么这个数就是快乐数。
    15 * 如果 n 是快乐数就返回 true ;不是,则返回 false 。
    16 * <p>
    17 * <p>
    18 * <p>
    19 * 示例 1:
    20 * <p>
    21 * 输入:19
    22 * 输出:true
    23 * 解释:
    24 * 12 + 92 = 82
    25 * 82 + 22 = 68
    26 * 62 + 82 = 100
    27 * 12 + 02 + 02 = 1
    28 * 示例 2:
    29 * <p>
    30 * 输入:n = 2
    31 * 输出:false
    32 * <p>
    33 * <p>
    34 * 提示:
    35 * <p>
    36 * 1 <= n <= 231 - 1
    37 */

    38public class IsHappy {
    39    // 取数值各个位上的单数之和
    40    static int getSum(int n) {
    41        int sum = 0;
    42        while (n > 0) {
    43            sum += (n % 10) * (n % 10);
    44            n /= 10;
    45        }
    46        return sum;
    47    }
    48
    49    /**
    50     * 因为结果集可能重复,所以考虑hash
    51     * <p>
    52     * 剩下的就是判断了
    53     *
    54     * @param n
    55     * @return
    56     */

    57    public static boolean isHappy(int n) {
    58        Set<Integer> set = new HashSet<>();
    59        while (true) {
    60            int sum = getSum(n);
    61            if (sum == 1) {
    62                return true;
    63            }
    64
    65            if (set.contains(sum)) {
    66                return false;
    67            } else {
    68                set.add(sum);
    69            }
    70            n = sum;
    71        }
    72    }
    73
    74    public static void main(String[] args) {
    75        System.out.println(isHappy(19));
    76    }
    77}
    `
    不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!
  • 相关阅读:
    C# 使用消息队列,包括远程访问
    Python3中urllib使用与源代码
    多年前写的DataTable与实体类的转换
    DataTable添加列和行的三种方法
    DevExpress 常用命令包括导出-打印-打印预览等
    c#开发_Dev的关于XtraGrid的使用(GridControl小结)
    正则表达式精华(包涵常用经典方法)
    数据库 插入时 碰到NULL报错判断的一种方法(技巧)
    MDI窗体简单方法(调用,闪屏)
    GridControl GridView 修改表格中的标题居中
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/14411218.html
Copyright © 2011-2022 走看看