Програма Java для пошуку факторіалу числа

У цій програмі ви навчитеся знаходити факторіал числа, використовуючи цикл for і while у Java.

Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:

  • Java для циклу
  • Java в той час як і робити … в той час як Loop

Факториал додатного числа n задається:

 факторіал n (n!) = 1 * 2 * 3 * 4 * … * n 

Приклад 1: Знайти факторіал числа за допомогою циклу for

 public class Factorial ( public static void main(String() args) ( int num = 10; long factorial = 1; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial *= i; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Вихідні дані

 Факториал 10 = 3628800

У цій програмі ми використовували цикл for, щоб прокрутити всі числа від 1 до заданого числа num (10), і добуток кожного числа до num зберігається у змінному факторіалі.

Ми використовували long замість int, щоб зберігати великі результати факторіалу. Однак він все ще недостатньо великий, щоб зберігати значення більших чисел (скажімо 100).

Для результатів, які неможливо зберегти у довгій змінній, ми використовуємо BigIntegerзмінну, оголошену в java.mathбібліотеці.

Приклад 2: Знайдіть факторіал числа за допомогою BigInteger

 import java.math.BigInteger; public class Factorial ( public static void main(String() args) ( int num = 30; BigInteger factorial = BigInteger.ONE; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(i)); ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Вихідні дані

 Факториал 30 = 265252859812191058636308480000000

Тут замість longми використовуємо BigIntegerзмінну факторіал.

Оскільки, *не може використовуватися з BigInteger, ми замість цього використовуємо multiply()для продукту. Крім того, число потрібно відливати BigIntegerдля множення.

Так само ми можемо використовувати цикл while для вирішення цієї проблеми.

Приклад 3: Знайти факторіал числа за допомогою циклу while

 public class Factorial ( public static void main(String() args) ( int num = 5, i = 1; long factorial = 1; while(i <= num) ( factorial *= i; i++; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Вихідні дані

 Факториал 5 = 120

У наведеній вище програмі, на відміну від циклу for, ми повинні збільшити значення i всередині тіла циклу.

Хоча обидві програми технічно правильні, в цьому випадку краще використовувати цикл for. Це тому, що відома кількість ітерацій (до числа).

Відвідайте цю сторінку, щоб навчитися знаходити факторіал числа за допомогою рекурсії.

Цікаві статті...