快乐数

描述

写一个算法来判断一个数是不是"快乐数"。

一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。

样例

19 就是一个快乐数。

1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1

实现

public class Test {
    
    public static boolean isHappy(int n) {
        // write your code here
        List<Integer> list = new ArrayList<>();
        list.add(n);

        int tmp = fun(n);
        while (tmp != 1) {
            if (list.contains(tmp)) {
                return false;
            } else {
                list.add(tmp);
                tmp = fun(tmp);
            }
        }
        return true;

    }

    private static int fun(int n) {
        int tmp = 0;
        tmp = (n % 10) * (n % 10);
        while (n / 10 != 0) {
            n = n / 10;
            tmp += Math.pow((n % 10), 2);
        }
        return tmp;
    }

}

请关注我的个人网站:https://zhujiaqqq.github.io/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写一个算法来判断一个数是不是"快乐数"。 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位...
    和蔼的zhxing阅读 1,683评论 0 0
  • 题目 描述 写一个算法来判断一个数是不是"快乐数"。 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替...
    悠扬前奏阅读 1,449评论 0 0
  • 写一个算法来判断一个数是不是"快乐数"。 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位...
    何大炮阅读 2,515评论 0 0
  • 题目 写一个算法来判断一个数是不是"快乐数"。 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他...
    六尺帐篷阅读 3,184评论 0 1
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 难度:容易 要求: 写一个算法来判断一个数是不是"快乐数"。...
    柒黍阅读 3,582评论 0 0