Program Java na vyhľadanie faktoriálu čísla

V tomto programe sa naučíte nájsť faktoriál čísla pomocou slučky for and while v Jave.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Java pre slučku
  • Java zatiaľ čo a robiť … zatiaľ čo Loop

Faktoriál kladného čísla n je daný:

 faktoriál n (n!) = 1 * 2 * 3 * 4 * … * n 

Príklad 1: Nájdite faktoriál čísla pomocou slučky 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); ) )

Výkon

 Faktoriál 10 = 3628800

V tomto programe sme použili postupnosť opakovania medzi všetkými číslami medzi 1 a daným číslom num (10) a súčin každého čísla až do čísla num je uložený v premennom faktoriáli.

Použili sme dlho namiesto int na ukladanie veľkých výsledkov faktoriálu. Stále to však nie je dosť veľké na to, aby sa do nich uložila hodnota väčších čísel (povedzme 100).

Na výsledky, ktoré nie je možné uložiť do dlhej premennej, sa používa BigIntegerpremenná deklarovaná v java.mathknižnici.

Príklad 2: Vyhľadajte faktoriál čísla pomocou nástroja 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); ) )

Výkon

 Faktoriál 30 = 265252859812191058636308480000000

Tu namiesto longpoužijeme BigIntegerpremenný faktoriál.

Pretože *sa nedá použiť BigInteger, použijeme namiesto multiply()toho produkt. Na BigIntegermnoženie by sa malo prenášať aj číslo .

Rovnako môžeme na vyriešenie tohto problému použiť aj cykliku while.

Príklad 3: Nájdite faktoriál čísla pomocou cyklu 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); ) )

Výkon

 Faktoriál 5 = 120

Vo vyššie uvedenom programe musíme na rozdiel od cyklu for zvýšiť hodnotu i vo vnútri tela slučky.

Aj keď sú oba programy technicky správne, v tomto prípade je lepšie použiť loop. Je to preto, lebo je známy počet iterácií (až do počtu).

Navštívte túto stránku a naučte sa nájsť faktoriál čísla pomocou rekurzie.

Zaujímavé články...