
Как легко проверить, является ли число автоморфным в Java
7 декабря 2022 г.В Интернете есть несколько статей о том, «как проверить в Java, является ли число автоморфным или нет», в том числе на популярных веб-сайтах, таких как GeeksforGeeks и JavaTpoint. Но у всех одинаковая проблема. Они не подходят для новичков.
В этой статье я покажу вам удобный для начинающих подход к определению того, является ли число автоморфным или нет в Java.
Что такое автоморфное число?
Автоморфное число — это число, в квадрате которого последней цифрой является точное число. Например, 25, являющееся квадратом 5, содержит 5 в качестве последней цифры. Примером двузначного числа является 5776, которое представляет собой квадрат 76 и оканчивается на 76. Некоторые другие примеры: 625, которое представляет собой квадрат 25 и оканчивается на 25.
Подход к решению программы
Давайте сначала рассмотрим простой подход к решению проблемы.
- Введите номер от пользователя
- Назначить его другой переменной (здесь это переменная p)
- Сохранение квадрата числа в переменной (здесь sq)
- С циклической проверкой, совпадают ли последние цифры обоих чисел или нет
- Совпадают ли последние цифры или нет, можно проверить с помощью простого условия
(n % 10 == sq % 10)
- С помощью переменной-счетчика (здесь c) запишите, сколько последних цифр совпадают
- Вне цикла проверьте с помощью условия if-else, больше ли значение переменной счетчика, чем 0 (переменная счетчика c инициализирована 0).

Код
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int i, n, sq, c=0;
System.out.println("Enter a number to check for Automorphic Number");
n = in.nextInt();
sq = n * n;
for (i = n; n > 0; n = n / 10) {
if (n % 10 == sq % 10)
c++;
sq = sq / 10;
}
if (c > 0)
System.out.println("Automorphic Number");
else
System.out.println("Not an Automorphic Number");
}
}
Возникла проблема с циклом For Loop? Здесь это решается с помощью цикла While
import java.util.Scanner;
class Main
{
public static void main (String[]args)
{
Scanner in = new Scanner (System.in);
int n, sq, p, c = 0;
System.out.println ("Enter a number to check for Automorphic Number");
n = in.nextInt();
p = n;
sq = n * n;
while (n > 0)
{
if (n % 10 == sq % 10)
c++;
n = n / 10;
sq = sq / 10;
}
if (c > 0)
System.out.println ("Automorphic Number");
else
System.out.println ("Not an Automorphic Number");
}
}
Пояснение кода
Программа проста. Нам просто нужно проверить, равны ли последние цифры квадрата числа числу или нет.
Я взял пять переменных:
- i — эта переменная бесполезна
- n - для хранения числа, введенного пользователем
- sq — для хранения квадрата числа.
- p - сохранить число для проверки наконец, так как переменная n станет равной 0 после выхода элемента управления из цикла
- c — это переменная-счетчик, используемая здесь для проверки того, находится ли число в конце своего квадрата или нет
for (i = n; n > 0; n = n / 10) { if (n % 10 == sq % 10) c++; кв = кв/10;
Условие цикла For 'i=n' можно заменить точкой с запятой (;).
for (; n > 0; n = n / 10)
Условие внутри цикла for используется для проверки того, равна ли последняя цифра переменной n последней цифре переменной sq или нет. В конце цикла переменные sq и n делятся на 10.
В цикле While n = n/10 находится в конце с sq = sq/10.
Этот цикл продолжается до тех пор, пока значение n не станет равным 0. Вот почему ранее значение n сохранялось в переменной p.
Изменить: переменная p не нужна.
Если последняя цифра обеих переменных одинакова, переменная счетчика c будет увеличена на 1.
После того, как цикл завершится и n станет равным 0, элемент управления переместится за пределы цикла, а затем с условием if-else мы проверим, больше ли переменная c счетчика 0 или нет. Если это так, то sq содержит n в качестве последней цифры.
Также опубликовано здесь
Оригинал