這題是 202. Happy Number,我們需要判斷給定的數是否為「快樂數 (Happy Number)」。
題目:
一個「快樂數」是這樣定義的:對於一個正整數,重複將數字替換為它每個位置上的數字的平方和,並最終會得到 1。如果在此過程中進入一個迴圈而無法到達 1,則不是快樂數。
範例:
輸入: 19
輸出: true
解釋: 
1² + 9² = 82
8² + 2² = 68
6² + 8² = 100
1² + 0² + 0² = 1
實作:
#include <unordered_set>
using namespace std;
class Solution {
public:
    bool isHappy(int n) {
        unordered_set<int> seen;
        while (n != 1 && seen.find(n) == seen.end()) {
            seen.insert(n);
            n = getNext(n);
        }
        return n == 1;
    }
private:
    int getNext(int n) {
        int sum = 0;
        while (n > 0) {
            int digit = n % 10;
            sum += digit * digit;
            n /= 10;
        }
        return sum;
    }
};