赞
踩
编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」 定义为:
对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
如果这个过程 结果为 1,那么这个数就是快乐数。 如果 n 是 快乐数 就返回 true ;不是,则返回 false 。示例 1:
输入:n = 19 输出:true 解释: 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02
- 02 = 1 示例 2:
输入:n = 2 输出:false
提示:
1 <= n <= 231 - 1
题目中说*“重复这个过程直到这个数变为 1,也可能是 无限循环”*
如果判断一个数字是否已经出现(无限循环),那么先考虑HashSet
定义一个私有方法getnextNumber()对n进行处理
在isHappy()方法中如果跳出循环时n = 1那么成立,是快乐数。
class Solution { public boolean isHappy(int n) { //定义一个整数类型HashSet命名为record Set<Integer> record = new HashSet<>(); //当n不等于1 且 record中不包含n时 while (n != 1 && !record.contains(n)) { //record集合加入n record.add(n); //调用class Solution中的getNextNumber私有方法得到新的n n = getNextNumber(n); //当新的n等于1或者record集合中已经存在n时跳出循环 } //如果n等于1那么返回1 return n == 1; } //私有方法 //通过对n的各个位上的数字进行平方求和的操作,得到下一个数 private int getNextNumber(int n){ int res = 0; while (n > 0) { int temp = n % 10; res += temp * temp; n = n / 10; } return res; } }
在Java中,有公有方法(public methods)和私有方法(private methods)的概念。
公有方法(public methods)是在类中声明的可以被外部代码访问和调用的方法。它们可以被其他类或对象直接调用。公有方法通常用于提供类的功能接口,允许其他代码与类进行交互。在代码中,公有方法使用关键字 public
进行修饰。
私有方法(private methods)是在类中声明的只能在类内部访问和调用的方法。它们不能被其他类或对象直接调用。私有方法通常用于内部实现细节和辅助功能,用于帮助公有方法完成任务。在代码中,私有方法使用关键字 private
进行修饰。
公有方法和私有方法的主要区别在于访问权限和可见性范围。*公有方法可以被外部代码访问,是类与外部世界交互的接口。*私有方法只能在类内部使用,对外部代码不可见,用于封装实现细节和辅助功能。
在以上代码中,isHappy(int n)
是一个公有方法,可以被其他类或对象调用。getNextNumber(int n)
是一个私有方法,只能在类内部被其他方法调用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。