W tym programie nauczysz się znajdować silnię liczby za pomocą pętli for i while w Javie.
Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:
- Java for Loop
- Java while i zrób… while Loop
Silnia liczby dodatniej n jest wyrażona wzorem:
silnia n (n!) = 1 * 2 * 3 * 4 *… * n
Przykład 1: Znajdź silnię liczby za pomocą pętli 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); ) )
Wynik
Silnia 10 = 3628800
W tym programie użyliśmy pętli do przechodzenia przez wszystkie liczby od 1 do podanej liczby num (10), a iloczyn każdej liczby do liczby num jest przechowywany w zmiennej silni.
Użyliśmy long zamiast int do przechowywania dużych wyników silni. Jednak nadal nie jest wystarczająco duża, aby przechowywać wartość większych liczb (powiedzmy 100).
W przypadku wyników, których nie można zapisać w długiej zmiennej, używamy BigInteger
zmiennej zadeklarowanej w java.math
bibliotece.
Przykład 2: Znajdź silnię liczby za 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); ) )
Wynik
Silnia 30 = 265252859812191058636308480000000
Tutaj zamiast long
używamy BigInteger
zmiennej silni.
Ponieważ *
nie można używać z BigInteger
, używamy zamiast multiply()
tego produktu. Do BigInteger
mnożenia należy rzutować również num .
Podobnie, do rozwiązania tego problemu możemy użyć pętli while.
Przykład 3: Znajdź silnię liczby za pomocą pętli 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); ) )
Wynik
Silnia 5 = 120
W powyższym programie, w przeciwieństwie do pętli for, musimy zwiększyć wartość i wewnątrz ciała pętli.
Chociaż oba programy są technicznie poprawne, w takim przypadku lepiej jest użyć pętli for. Dzieje się tak, ponieważ znana jest liczba iteracji (do liczby).
Odwiedź tę stronę, aby dowiedzieć się, jak znaleźć silnię liczby za pomocą rekurencji.