202. 快乐数

java 复制代码
class Solution {
    public boolean isHappy(int n) {
        int index1 = n;
        int index2 = n;
        while(true){
            index1 = sum(index1);
            index2 = sum(sum(index2));
            if(index1==1 || index2==1)
                return true;
            if(index1 == index2)
                return false;  
        }
    }

    public int sum(int n){
        int ans = 0;
        while(n!=0){
            ans += (n%10)*(n%10);
            n = n/10;
        }
        return ans;
    }
}

快乐数,一点都不快乐

要点:

只有两种情况

1.一直往后算,直到算到1。

2.一直往后算,会循环回来到一个之前算过的数,构成一个环。

一般会想是否会一直加到一个非常大的数字,是不会的(证明麻烦,记住就好)
验证是否有环用快慢指针。

相关推荐
米粒111 分钟前
力扣算法刷题 Day 62 最短路算法
算法·leetcode·职场和发展
时空自由民.18 分钟前
三个按键的,短按1S,长按3S,单击,双击,三击的检测程序
大数据·数据库·计算机网络·算法
dog25022 分钟前
圆锥曲线命题的定义和证明
网络·算法·php
IT猿手33 分钟前
光伏模型参数估计:山羊优化算法(Goat Optimization Algorithm, GOA)求解光伏模型参数辨识问题,免费提供完整MATLAB代码链接
开发语言·算法·matlab·智能优化算法·光伏模型参数估计·光伏模型参数辨识·最新群智能算法
Cando学算法40 分钟前
欧拉回路(一笔画)
数据结构·c++·图论
嵌入式小企鹅1 小时前
大模型算法工程师面试宝典
人工智能·学习·算法·面试·职场和发展·大模型·面经
我不是懒洋洋1 小时前
手写一个并查集:从原理到最小生成树实战
c语言·c++·经验分享·算法
图码1 小时前
一文搞懂如何判断字符串是否为Pangram(全字母句)
数据结构·算法·网络安全·数字雕刻·ping++
khalil10201 小时前
代码随想录算法训练营Day-43 动态规划10 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
数据结构·c++·算法·leetcode·动态规划·子序列问题
AIpanda8882 小时前
数字员工助推AI销冠系统和AI提效软件系统,实现企业智能化转型与运营效率提升
算法