【202】快乐数

快乐数

题目

快乐数

思路

自己的思路:
1、首先要将给定的数字按照每位数分开
2、其次要考虑一位数,两位数的,以及多位数的情况,按照这种考虑,那。。。
3、然后就没有了然后,已经歪了。

leetcode思路回顾:
利用set集合元素不能重复的特点,将每次计算的结果放到一个Set集合里并且检测该元素是否已经存在,这个计算结果有两种情况,要么归为1,此时为“快乐数”,要么无限循环,此时不为“快乐数”。

代码

class Solution {
//用来计算下一个进入计算的数,取数字每一位数的方法比较经典
//对10取模后取的是个位数,然后在除以10,再次取模,取得就是十位数,
//依次类推
	public int getNext(int n){
        int sum = 0;
        while(n >0){
            int temp = n % 10;
            n = n /10;
            sum += temp * temp ;
        }
        return sum;
    }
//用来检测是否为快乐数,终止循环的条件就是返回1,此时为快乐数,
//返回set集合已经存在的元素,此时不为快乐数;
    public boolean isHappy(int n){
        Set<Integer> set = new HashSet<>();
        while(n !=1 && !set.contains(n)){
            set.add(n);
            n = getNext(n);
        }
        return n == 1;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值