Как легко проверить, является ли число автоморфным в Java

Как легко проверить, является ли число автоморфным в 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).

![Скриншот программы Automorphic Number на Java](https://cdn.hashnode.com/res/hashnode/image/upload/v1670005718985/9a8c69ff-af3a-40ea-a637-aba9bdc87560.jpeg align="center")

Код

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 в качестве последней цифры.


Также опубликовано здесь


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE