LeetCode - 202. 快乐数

题目

202. 快乐数 - 力扣(LeetCode)

思路

先模拟出所有的情况

根据情况1和情况2发现,无论哪种情况,都能成环,只是一个是环里都是1,一个是环里不为1,所以这里仅需判断能否成环,然后再判断环里是否为1 即可判断出快乐数

读者可能出现的错误写法

cpp 复制代码
class Solution {
public:

    int bitSum(int n)
    {
        int sum = 0;
        while(n)
        {
            int t = n%10;
            sum += t*t;
            n=n/10;
        }
        return sum;
    }
    bool isHappy(int n) {
        int slow = n;
        int fast = n;
        while(slow != fast)
        {
            slow = bitSum(slow);
            fast = bitSum(bitSum(fast));
        }

        return slow == 1;
    }
};

这里的fast不能初始化成n,因为初始化成n循环就进不去了,应该是初始化成n的下一位,也就是bitSum(n);

正确写法

cpp 复制代码
class Solution {
public:

    int bitSum(int n)
    {
        int sum = 0;
        while(n)
        {
            int t = n%10;
            sum += t*t;
            n=n/10;
        }
        return sum;
    }
    bool isHappy(int n) {
        int slow = n;
        int fast = bitSum(n);
        while(slow != fast)
        {
            slow = bitSum(slow);
            fast = bitSum(bitSum(fast));
        }

        return slow == 1;
    }
};
相关推荐
明志数科1 小时前
4D时序标注技术详解:让机器人理解连续动作的数据基础
java·算法·机器人
KaMeidebaby1 小时前
卡梅德生物技术快报|原核表达系统工艺优化:包涵体重折叠 + 分子筛纯化实现功能 RBD 高效制备,附全参数配置
前端·人工智能·算法·数据挖掘·数据分析
无限码力2 小时前
携程0510笔试真题【单数组交换】
算法·携程笔试·携程笔试真题·携程0510笔试真题
BlockWay2 小时前
WEEX Labs 周度观察:微软-OpenAI 合作调整与AI 多云趋势
大数据·人工智能·算法·安全·microsoft
风筝在晴天搁浅3 小时前
快手 CodeTop LeetCode 224.基本计算器
数据结构·算法·leetcode
Smoothcloud润云3 小时前
5大功能精修,重构AI算力使用体验!
java·人工智能·windows·算法·重构·编辑器·sublime text
计算机安禾3 小时前
【算法分析与设计】第41篇:确定性与非确定性多项式时间:P与NP的形式化
算法
浮午3 小时前
字节AI Agent开发面试全解析:15道高频问题+深度答案
人工智能·面试·职场和发展
leo__5204 小时前
随机接入退避算法过程模拟实现
网络·算法
-To be number.wan4 小时前
算法日记 | STL- sort排序
c++·算法