1. 程式人生 > >Leetcode---快樂數--技巧

Leetcode---快樂數--技巧

快樂數

題目連結:快樂數

思路:

這道題乍一看不知道怎麼解,瞭解什麼是快樂數後非常簡單
突破點就兩個:1.如何拆解任意長度的整數 2.如何判斷非快樂數已經進入迴圈狀態
第一個直接迴圈拆就行了,第二個在百度了快樂數後瞭解,所有非快樂數最終都會進入4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4 的迴圈中。
程式碼:

	public static boolean isHappy(int n) {
        List<Integer> list = new ArrayList<Integer>();
        while
(n!=4) { while(n!=0) { list.add(n%10); n/=10; } int temp = 0; for(int i:list) { temp+=i*i; } if(temp==1) { return true; }else { list.clear(); n = temp; } } return false
; }