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.一直往后算,会循环回来到一个之前算过的数,构成一个环。

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

相关推荐
z200509304 分钟前
今日算法(组合问题III)(回溯的使用)
java·算法·leetcode
春栀怡铃声5 分钟前
【C++修仙录02】筑基篇:list 使用
数据结构·list
2401_889626926 分钟前
Java语法进阶篇
算法
Sinsa_SI15 分钟前
2026算法应用主题赛初赛-小学4-6组(Python)试卷(含答案+详细解析)
开发语言·python·算法
Lyon1985052816 分钟前
从临床医疗说起:当一种科学理论走到边界的时候
人工智能·深度学习·算法·deepseek·ai伦理
美团技术团队16 分钟前
从高拟真到真可用,LongCat-Video-Avatar 1.5 正式开源
人工智能·算法
夏日听雨眠25 分钟前
数据结构(BF算法 )
数据结构·算法·排序算法
夏日听雨眠27 分钟前
数据结构(KMP算法)
数据结构·算法
并不喜欢吃鱼33 分钟前
从零开始 C++----十【C++ 数据结构】AVL 树详解:从原理到实现
开发语言·数据结构·c++
智者知已应修善业33 分钟前
【51单片机第5和6位数码管显示0-99自动计数】2023-11-29
c++·经验分享·笔记·算法·51单片机