• 當前位置:首頁 > IT技術 > 其他 > 正文

    快樂數(Hash)
    2022-09-06 22:46:14

    一、題目鏈接

    ? ? ? ? ? ? ? ? ? ? ? ??快樂數??

    二、題目描述

    ?編寫一個算法來判斷一個數 n 是不是快樂數。

    快樂數」?定義為

    對于一個正整數,每一次將該數替換為它每個位置上的數字的平方和。

    然后重復這個過程直到這個數變為 1,也可能是 無限循環 但始終變不到 1。

    如果這個過程 結果為?1,那么這個數就是快樂數。

    如果 n 是 快樂數 就返回 true ;不是,則返回 false 。

    示例 1:

    輸入:n = 19

    輸出:true

    解釋:? ?12 + 92 = 82

    82 + 22 = 68

    62 + 82 = 100

    12 + 02 + 02 = 1

    示例 2:

    輸入:n = 2

    輸出:false

    提示:? 1 <= n <= 231 - 1

    三、題目分析

    ? ? ??為了存儲不重復的元素,可以使用HashSet集合(可以使用其中的contains()方法來進行條件判斷),再編寫一個函數,用來求解該數值每一位的平方之和。

    四、核心代碼實現

    class Solution {
    public boolean isHappy(int n) {
    Set<Integer> set=new HashSet<>();
    while(n!=1&&!set.contains(n)){//條件:如果n不等于1并且n在set中并未存在,就將該數添加到set中
    set.add(n);
    n=getIndexnumber(n);//更新n的值
    }
    return n==1;
    }
    //通過該方法可以求出對應數字每個位上的平方之和
    private int getIndexnumber(int n){
    int sum =0;
    while(n>0){
    int tem=n%10;
    sum+=tem*tem;
    n=n/10;
    }
    return sum;
    }
    }

    本文摘自 :https://blog.51cto.com/u

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码