Java实现蓝桥杯快乐数

【问题描述】
判断一个正整数是否是快乐数字?
如果一个数字能够通过有限次快乐变换成为1,则是快乐数字。
快乐变换是对一个数字的每一位的平方数求和。
例如:
对于68
68 => 62+82= 100
100 => 12 + 02 + 02 = 1
因此68是快乐数字
输入
每一行输入一个整数,代表n;如果n为-1,表示输入结束。(n <= 100000000)
输出
针对每组数据,输出是否是快乐数字 true/false

package Xueying_Liu;

import java.util.Scanner;

public class kuaileshu {
    public static String s = "";

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        for (; ; ) {

            s = "";
            int n = sc.nextInt();
            if (n == -1) return;
            if (isHappy(n))
                System.out.println("是快乐数
" + s);
            else
                System.out.println("不是快乐数
");
        }
    }

    public static boolean isHappy(int n) {
        s = s + n + "   ";
        // Write your code here
        if (n == 1) {
            return true;
        }
        if (n < 1) {
            return false;
        }
        int count = 0;
        while (n != 1) {
            String s = n + "";
            char[] arr = s.toCharArray();
            int sum = 0;
            for (int i = 0; i < arr.length; i++) {
                sum += Integer.parseInt(arr[i] + "") * Integer.parseInt(arr[i] + "");
            }
            n = sum;
            s = s + n + "   ";
            count++;
            if (count > 1000) {
                return false;
            }
        }
        return true;
    }

}


原文地址:https://www.cnblogs.com/a1439775520/p/13075901.html