Вступ у Факторський на 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" та "факт", зі значенням 1, потім "число" з 5, що є нашим числом для обчислення факторіалу. Увійшов до For Loop, продовжував збільшувати значення 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 з використанням методу рекурсії

Рекурсія - один з найкорисніших інструментів у світі програмування. Рекурсія в основному означає повторне використання функції. Так би мовити, нам не доведеться визначати додаткову кількість змінних тут, це означає, що у нас буде лише дві змінні або менше.

Основна причина впровадження рекурсії - це можливість скоротити довжину коду та елегантно зменшити часову складність програми. Метод рекурсії, що має свої переваги, має ряд недоліків, які можуть мати великий вплив у довгостроковій перспективі.

Недоліки

Недоліки при рекурсії:

  • В основному, налагодити код рекурсії досить складно і простежити його на будь-якому кроці з помилкою.
  • Крім того, для рекурсії використовується більше пам’яті, оскільки для виконання завдання використовується 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 * факторіал (5-1)", факториал викликається тут вдруге, що є черговим дзвінком. Потім він знову повертається з більш новим значенням int, яке дорівнює 4, "4 * факторіал (4-1)", тепер це буде третім викликом методу рекурсії. Тепер, новіше значення int дорівнює 3, що означає "3 * факториал (3-1)", тепер це буде четвертий виклик, а значення буде 2, що означає "2 * факторіал (2-1)". У наступному рекурсивному виклику значення int буде таким, що припинить функцію тут. Під час кожного дзвінка його значення зберігалось у стеці, що є методом LIFO. Отже, для остаточного результату результат буде "5 * 4 * 3 * 2 * 1 = 120"

Порівняно з іншими методами, "Рекурсію" досить важко зрозуміти та реалізувати, але якщо її добре зрозуміти та реалізувати розумно, це хороший інструмент.

Вихід :

Настійно рекомендується використовувати рекурсію, лише у випадку, коли написання ітераційного коду може бути досить складним.

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

Приклад 4 - Факторна програма на Java за допомогою вбудованої функції

*) IntMath

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

IntMath - клас для арифметичних обчислень на значення int. Клас IntMath поставляється з різноманітними арифметичними операціями, включаючи факторні.

Синтаксис :

factorial (int n)

Висновок - Факторний на Яві

Ми почали зі вступу до java та як запустити програму java. Тоді ми дізналися про факторний розрахунок та різні методи, зокрема рекурсії, для його виконання.

Наприкінці ми дізналися про IntMath, функцію Java, орієнтовану головним чином на арифметичні операції. Java - широко використовувана мова програмування, вона має багато функцій, у цій статті ми дізналися про Факторні розрахунки на Яві, що є крихітним аспектом.

Рекомендовані статті

Це посібник з Factorial на Яві. Тут ми обговорюємо, як виконувати програму java разом з її методами. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Тестування рамок для Java
  2. Життєвий цикл теми на Java
  3. Змінні на Java
  4. Анотації на Java
  5. Масиви в програмуванні Java
  6. Факторний в C #