天天看點

LeetCode_202_快樂數

題目描述:

編寫一個算法來判斷一個數是不是“快樂數”。
一個“快樂數”定義為:對于一個正整數,每一次将該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是無限循環但始終變不到 1。如果可以變為 1,那麼這個數就是快樂數。
示例: 
輸入: 19
輸出: true
解釋: 
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1      
class Solution {
public:
    vector<int> vec;
    vector<int>::iterator it;
    bool isHappy(int n) {
        int sum=0;
        while(n){
            sum+=pow(n%10,2);
            n/=10;
        }
        if(sum==1)
            return true;
        it=find(vec.begin(),vec.end(),sum);
        if(it==vec.end())
            vec.push_back(sum);
        else
            return false;
        return isHappy(sum);
    }
};      

繼續閱讀