Введение в Факториал в Java

В этой статье мы узнаем о различных способах написания кода на языке программирования Java для целей факторных вычислений.

Будучи одним из простых в использовании объектно-ориентированных языков, Java, не зависит от платформы и является простым языком программирования. Компилятор и интерпретатор Java были разработаны с безопасностью в качестве основного аспекта. У Java есть различный диапазон заявлений.

Факториал, обозначаемый как «!» (Восклицательный знак), является математической операцией умножения числа на все числа, которые меньше его. Например, если число равно 5, вывод факториала будет 5! = 5 * 4 * 3 * 2 * 1 = 120.

Как выполнить программу на Java?

1. Заполните ваш код и сохраните его как (имя файла) .java

2. Откройте Терминал и выполните следующую команду Java.

  • а. javac (имя файла) .java

3. Приведенная выше команда создаст файл класса.

4. Теперь выполните файл класса.

  • а. Java (имя файла)

Расчет факториала с использованием различных методов

Пример 1 - Факториальная программа на Java с использованием Базового метода

В дальнейшем мы напишем простую Java-программу для факторных расчетов.

public class Factorial
(
public static void main(String args())
(int i, fact=1;
int number=5;
for(i=1;i<=number;i++)
(
fact=fact*i;
)
System.out.println("Factorial of "+number+" is: "+fact);
)
)

Сохраните приведенный выше код с любым именем файла и расширением .java.

Объяснение кода:

Началось с двух переменных «i» и «fact», со значением 1, затем «number» с 5, которое является нашим числом для вычисления факториала. Зашел в цикл For, продолжал увеличивать значение i, пока мы не сопоставили его с числом, т. Е. 5. При увеличении, каждый раз, когда значение факта увеличивается, оно умножается и факту присваивается новое значение.

Выход :

Пример 2 - Факториальная программа на Java с использованием пользовательского ввода

Другой обычно используемый метод - это когда мы просим ввести пользовательский номер для расчета вместо его предварительного определения.

Обратитесь к приведенному ниже коду для расчета на основе пользовательского ввода:

import java.util.Scanner;
class Facto(
public static void main(String args()) (
int q, a, fact = 1;
System.out.println("Please Enter a number:");
Scanner in = new Scanner(System.in);
q = in.nextInt();
if ( q < 0 )
System.out.println("Please enter a number greater than 0:");
else (
for ( a = 1 ; a <= q ; a++ )
fact = fact*a;
System.out.println("Factorial of "+q+" is = "+fact);
)
)
)

Сохраните приведенный выше код, как мы делали для предыдущего примера.

Объяснение кода:

Основное различие между предыдущим и приведенным выше примером заключается в вводе пользователем, остальное - то же самое. Код будет запрашивать вычисляемое число, а затем, если введенное пользователем число отрицательное, которое находится в «-», минус, будет выдано сообщение «Пожалуйста, введите число больше 0:», что очевидно, поскольку факториал не может быть рассчитано для отрицательного числа. Теперь он примет положительное число и перейдет к Расчету факториала, а затем напечатает вывод, как показано на рисунке ниже.

Выход :

Пример 3 - Факториальная программа на Java с использованием метода рекурсии

Рекурсия является одним из самых полезных инструментов в мире программирования. Рекурсия в основном означает повторное использование функции. Скажем так, нам не нужно будет определять здесь дополнительное количество переменных, что означает, что у нас будет только две переменные или меньше.

Основной причиной реализации Recursion является возможность уменьшить длину кода и элегантно уменьшить временную сложность программы. Метод рекурсии, со своими преимуществами, имеет несколько недостатков, которые могут оказать значительное влияние в долгосрочной перспективе.

Недостатки

Недостатки рекурсии:

  • По сути, довольно сложно отладить код рекурсии и отследить его на любом этапе с ошибкой.
  • Помимо этого, рекурсия использует больше памяти, так как она использует Stack для выполнения задачи, где она продолжает складывать стек с более новым рекурсивным вызовом.
  • И, если не реализовано с умом, Рекурсия может замедлить функцию.
  • StackOverflowException: рекурсивные методы часто выдают это исключение из-за чрезмерного использования стека.

Обратитесь к приведенному ниже коду:

public class FactorialExample2 (
static int factorial(int n)(
if (n == 1)
return 1;
else
return(n * factorial(n-1));
)
public static void main(String() args) (
System.out.println("Factorial of 5 is: "+factorial(5));
)
)

Сохраните и скомпилируйте программу, как мы делали ранее.

Объяснение кода:

Вышеприведенный код начинается с единственной переменной int, проверяет, равна ли она 1, если да, то возвращает единицу, а факториал для 1 равен 1. Если не равен 1, он выполняет функцию рекурсии. Например, наше значение int равно 5, поэтому оно будет похоже на «5 * factorial (5-1)», здесь факториал вызывается во второй раз, что является еще одним вызовом. Затем он возвращается снова с более новым значением int, которое равно 4, «4 * factorial (4-1)», теперь это будет третий вызов метода рекурсии. Теперь более новое значение int равно 3, что означает «3 * factorial (3-1)», теперь это будет четвертый вызов, а значение будет равно 2, что означает «2 * factorial (2-1)». В следующем рекурсивном вызове значение int будет тем, которое завершит функцию здесь. При выполнении каждого вызова его значение сохранялось в стеке, который является методом LIFO. Таким образом, для окончательного результата, результат будет «5 * 4 * 3 * 2 * 1 = 120»

По сравнению с другими методами, рекурсия довольно сложна для понимания и реализации, но при правильном понимании и правильном применении она является хорошим инструментом.

Выход :

Настоятельно рекомендуется использовать Recursion, только в том случае, когда написание итеративного кода может быть довольно сложным.

Теперь, когда мы изучили различные методы для реализации факториальных вычислений в Java, давайте рассмотрим встроенную функцию, которая выполняет ту же самую работу, в одной строке.

Пример 4 - Факториальная программа на Java с использованием встроенной функции

*) IntMath

Понимая необходимость арифметических операций над значением, было написано несколько функций, специфичных для определенных типов значений, и мы увидим значение типа Integer в работе.

IntMath - это класс для арифметических вычислений над значением типа int. Класс IntMath поставляется с целым рядом арифметических операций, в том числе факториальными.

Синтаксис :

factorial (int n)

Вывод - Факториал на Яве

Мы начали с введения в Java и как запустить программу Java. Затем мы узнали о факториальном расчете и различных методах, включая рекурсию, для его выполнения.

В конце мы узнали о IntMath, Java-функции, в основном сфокусированной на арифметических операциях. Java - широко используемый язык программирования, он имеет много функций, в этой статье мы узнали о факториальных вычислениях в Java, что является небольшим аспектом.

Рекомендуемые статьи

Это руководство по факториалу на Яве. Здесь мы обсудим, как выполнить Java-программу вместе с ее методами. Вы также можете посмотреть следующие статьи, чтобы узнать больше

  1. Тестирование фреймворков для Java
  2. Жизненный цикл потока в Java
  3. Переменные в Java
  4. Java аннотации
  5. Массивы в программировании на Java
  6. Факториал в C #