程式語言 - LeetCode - C++ - 202. Happy Number



題目:


解答:

class Solution {
public:
    bool isHappy(int n) {
        auto next = [&](int n) -> int {
            int sum = 0;

            while (n > 0) {
                int d = n % 10;

                sum += (d * d);
                n /= 10;
            }

            return sum;
        };

        unordered_set<int> q;

        while (n != 1 && !q.count(n)) {
            q.insert(n);
            n = next(n);
        }

        return n == 1;
    }
};