Happy Number

/*
    题意:判断一个数是不是happy数(用这个数每一位的平方的和代替这个数,
    不断重复这个过程,如果最后这个数是1,那么这个数就是happy数)
    解法:用map容器映射一下,判断当前数是否在前面出现过,如果出现过那么
    这个数就不是happy数,不过这样子的空间复杂度太高
*/
class Solution {
public:
    bool isHappy(int n) {
        map<long,bool>m;
        m.clear();
        long ans = (long)n;
        while(ans!=1){
            long cur = ans;ans = 0;
            while(cur){
                ans +=(cur%10)*(cur%10);
                cur/=10;
            }
            if(m[ans]) return false;
            m[ans] = 1;
        }
        return true;
    }
};

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。