快乐数-力扣

使用一个set来存储遇到的每个数,如果遇到的数在set中,那么说明这个数不是快乐数,否则一直循环下去,直到n = 1结束循环,表示这个数是个快乐数。

  • 需要注意的是,给定一个数 n, 怎样对这个数 n 进行每一位求和。

代码如下:

cpp 复制代码
class Solution {
public:
    bool isHappy(int n) {
        unordered_set<int> s;
        while(n != 1){
            if(s.find(n) != s.end()){
                return false;
            }
            else {
                s.insert(n);
            }
            n = getSum(n);
        }  
        return true;
    }

    int getSum(int n){
        int sum = 0;
        while(n){
            sum += (n % 10) * (n % 10);
            n /= 10;
        }

        return sum;
    }
};
相关推荐
稚南城才子,乌衣巷风流5 分钟前
树的重心:概念、性质与算法详解
算法·深度优先·图论
不会就选b9 分钟前
算法日常・每日刷题--<哈希>1
算法·哈希算法
zander25817 分钟前
LeetCode 207. 课程表
算法·深度优先
萌动的小火苗19 分钟前
深度学习中的损失函数与优化算法基础知识
人工智能·深度学习·算法
happyprince22 分钟前
02_OpenCodeReview 具体观:八种算法机制与背后的论文谱系
算法
变量未定义~24 分钟前
图论+动态规划——魔法阵
算法
大爱编程♡26 分钟前
C++基础-类和对象
c++·算法
ysa05103028 分钟前
【板子】费用流
算法·深度优先·图论
玖玥拾38 分钟前
LeetCode 80 删除有序数组中的重复项 II
算法·leetcode
青山木1 小时前
Hot 100 --- 电话号码的字母组合
java·数据结构·算法·leetcode·逻辑回归