Научитесь писать простую программу на Java, которая проверяет, является ли заданное число счастливым числом или нет.
1. какое число является счастливым
Число называется счастливым, если оно даст '1' при многократной замене его на сумму квадратов его цифр. Другими словами, если мы начнем со счастливого числа и продолжим заменять его на сумму квадратов цифр, мы придем к 1
Если в результате этого процесса получается бесконечный цикл чисел, то такое число называется несчастливым числом(или грустным числом).
Например, рассмотрим следующий пример числа 32.
Номер: 32
32 + 22 = 13
12 + 32 = 10
12 + 02 = 1
Другие примеры счастливых чисел: 7, 28, 100, 320 и так далее.
2. Алгоритм определения счастливого числа
Чтобы узнать, является ли заданное число счастливым или нет –
- Вычислите квадрат каждой цифры, присутствующей в числе, и прибавьте его к переменной сумме.
- Если полученная сумма равна 1, то данное число является счастливым числом.
- Если сумма равна ранее встреченному числу, то это несчастливое число.
- В противном случае замените число суммой квадратов цифр.
3. Программа Java для поиска счастливого числа
package com.howtodoinjava.java8.example;import java.util.HashSet;import java.util.Set;public class Main{public static void main(String[] args) {System.out.println("32 is happy number " + isHappyNumber(32));System.out.println("7 is happy number " + isHappyNumber(7));System.out.println("28 is happy number " + isHappyNumber(28));System.out.println("30 is happy number " + isHappyNumber(30));System.out.println("9 is happy number " + isHappyNumber(9));System.out.println("24 is happy number " + isHappyNumber(24));}static boolean isHappyNumber(int numberToCheck){Set<Integer> uniqueNumbersEncounterd = new HashSet<Integer>();//Just to avoid any infinite loopwhile(uniqueNumbersEncounterd.add(numberToCheck)){int value = 0;while(numberToCheck > 0){value += Math.pow(numberToCheck % 10, 2);numberToCheck /= 10;}numberToCheck = value;}return numberToCheck == 1;}}
Вывод программы.
32 is happy number true7 is happy number true28 is happy number true30 is happy number false9 is happy number false24 is happy number false
Ссылка: Википедия