W tym przykładzie nauczysz się pisać program JavaScript, który odnajduje silnię liczby za pomocą rekursji.
Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania JavaScript:
- Rekursja JavaScript
- JavaScript if… else Instrukcja
Silnia liczby jest iloczynem wszystkich liczb od 1 do tej liczby. Na przykład,
silnia 5 jest równa 1 * 2 * 3 * 4 * 5 = 120 .
Silnia liczby dodatniej n jest wyrażona wzorem:
factorial of n (n!) = 1 * 2 * 3 * 4… n
Silnia liczb ujemnych nie istnieje, a silnia 0 to 1 .
Przykład: Znajdź silnię za pomocą rekursji
// program to find the factorial of a number function factorial(x) ( // if number is 0 if (x == 0) ( return 1; ) // if number is positive else ( return x * factorial(x - 1); ) ) // take input from the user const num = prompt('Enter a positive number: '); // calling factorial() if num is positive if (num>= 0) ( const result = factorial(num); console.log(`The factorial of $(num) is $(result)`); ) else ( console.log('Enter a positive number.'); )
Wynik
Podaj liczbę dodatnią: 4 Silnia 4 to 24
W powyższym programie użytkownik jest proszony o wprowadzenie liczby.
Gdy użytkownik wprowadzi liczbę ujemną, zostanie wyświetlony komunikat Wprowadź liczbę dodatnią. jest pokazane.
Gdy użytkownik wprowadzi liczbę dodatnią lub 0 , factorial(num)
wywoływana jest funkcja .
- Jeśli użytkownik wpisze liczbę 0 , program zwróci 1 .
- Jeśli użytkownik wprowadzi liczbę większą niż 0 , program będzie rekurencyjnie wywoływał siebie, zmniejszając tę liczbę.
- Ten proces jest kontynuowany, aż liczba stanie się 1. Następnie, gdy liczba osiągnie 0, zwracane jest 1.
Tutaj,
silnia (4) zwraca 4 * silnia (3) silnia (3) zwraca 4 * 3 * silnia (2) silnia (2) zwraca 4 * 3 * 2 * silnia (1) silnia (1) zwraca 4 * 3 * 2 * 1 * silnia (0) silnia (0) zwraca 4 * 3 * 2 * 1 * 1