U ovom programu naučit ćete pronaći faktorijel broja koji koristi petlju for i while u Javi.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:
- Java za petlju
- Java while and do … while Loop
Faktorijal pozitivnog broja n daje:
faktorijel od n (n!) = 1 * 2 * 3 * 4 * … * n
Primjer 1: Pronađite faktorijel broja pomoću petlje 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); ) )
Izlaz
Faktorijal od 10 = 3628800
U ovom programu koristili smo for petlju za petlju kroz sve brojeve između 1 i zadanog broja num (10), a umnožak svakog broja dok se num pohrani u varijablu faktorijela.
Koristili smo long umjesto int za pohranu velikih rezultata faktorijela. Međutim, još uvijek nije dovoljno velik za pohranu vrijednosti većih brojeva (recimo 100).
Za rezultate koji se ne mogu pohraniti u dugačku varijablu koristimo BigInteger
varijablu deklariranu u java.math
knjižnici.
Primjer 2: Pronađite faktorijel broja pomoću BigInteger-a
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); ) )
Izlaz
Faktorijal od 30 = 265252859812191058636308480000000
Ovdje, umjesto long
, koristimo BigInteger
varijabilni faktorijel.
Budući da *
se ne može koristiti sa BigInteger
, umjesto toga koristimo multiply()
za proizvod. Također, num bi trebao biti lijevan BigInteger
za množenje.
Isto tako, također možemo koristiti while petlju za rješavanje ovog problema.
Primjer 3: Pronađite faktorijel broja pomoću petlje 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); ) )
Izlaz
Faktorijal od 5 = 120
U gornjem programu, za razliku od for petlje, moramo povećati vrijednost i unutar tijela petlje.
Iako su oba programa tehnički ispravna, u ovom je slučaju bolje koristiti for loop. To je zato što je poznat broj ponavljanja (do broja).
Posjetite ovu stranicu da biste naučili pronaći faktorijel broja pomoću rekurzije.