自学内容网 自学内容网

LeetCode 202.快乐数

LeetCode 202.快乐数 C++

image-20241017193224825

思路:

  用快慢指针来进行解答,可以将其看做一个回环链表慢指针完成一次平方和操作,快指针完成两次平方和操作,当快慢指针相遇时,判断快慢指针是否为1(为1以后无论怎么取平方和都会为1),如果为1就是快乐数,否则不是。

image-20241017193311329

代码:

class Solution {
public:
    int Pow(int n) //求平方和函数
    {
        int a = 0;
        while(n)
        {
            a += pow(n % 10, 2);
            n /= 10;
        }
        return a;
    }
    bool isHappy(int n) {
        int slow = n;
        int fast = n;
        do
        {
            slow = Pow(slow);

            fast = Pow(fast);
            fast = Pow(fast);

        } while(slow != fast);
        if(slow == 1) //有一个等于1就是快乐数
            return true;
        else
            return false;
    }
};

image-20241017193624842


原文地址:https://blog.csdn.net/m0_63816268/article/details/143026716

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!