V tomto programu se naučíte najít faktoriál čísla pomocí smyčky for a while v Javě.
Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:
- Java pro smyčku
- Zatímco Java a dělat … zatímco Loop
Faktoriál kladného čísla n je dán vztahem:
faktoriál n (n!) = 1 * 2 * 3 * 4 * … * n
Příklad 1: Najděte faktoriál čísla pomocí smyč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ýstup
Faktoriál 10 = 3628800
V tomto programu jsme použili smyčku pro smyčku všech čísel mezi 1 a daným číslem num (10) a součin každého čísla do num je uložen v proměnném faktoriálu.
Používali jsme dlouho místo int k ukládání velkých výsledků faktoriálu. Stále však není dost velký na to, aby ukládal hodnotu větších čísel (řekněme 100).
U výsledků, které nelze uložit do dlouhé proměnné, použijeme BigInteger
proměnnou deklarovanou v java.math
knihovně.
Příklad 2: Najděte faktoriál čísla pomocí 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ýstup
Faktoriál 30 = 265252859812191058636308480000000
Zde místo toho long
používáme BigInteger
proměnný faktoriál.
Protože *
nelze použít s BigInteger
, místo toho použijeme multiply()
pro produkt. BigInteger
Pro rozmnožování by také mělo být sesláno num .
Podobně můžeme k řešení tohoto problému použít i while smyčku.
Příklad 3: Najděte faktoriál čísla pomocí smyčky 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ýstup
Faktoriál 5 = 120
Ve výše uvedeném programu, na rozdíl od smyčky for, musíme zvýšit hodnotu i uvnitř těla smyčky.
Ačkoli jsou oba programy technicky správné, je v tomto případě lepší použít smyčku. Je to proto, že je znám počet iterací (až num).
Na této stránce se naučíte najít faktoriál čísla pomocí rekurze.