JavaScript program a szám tényezőjének megtalálásához a rekurzió használatával

Ebben a példában megtanul olyan JavaScript programot írni, amely rekurzió segítségével megtalálja a szám tényleges számát.

A példa megértéséhez ismernie kell a következő JavaScript programozási témákat:

  • JavaScript rekurzió
  • JavaScript, ha… más nyilatkozat

A szám faktoriálja az 1- től számig terjedő összes szám szorzata . Például,

az 5 faktoriális értéke 1 * 2 * 3 * 4 * 5 = 120 .

Az n pozitív szám tényezőjét a következő adja meg:

 factorial of n (n!) = 1 * 2 * 3 * 4… n

A negatív számok faktoriálja nem létezik, a 0 faktoriális értéke pedig 1 .

Példa: Keresse meg a faktort a rekurzió használatával

 // 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.'); )

Kimenet

 Adjon meg egy pozitív számot: 4 A 4 tényezője 24

A fenti programban a felhasználót arra kérjük, hogy adjon meg egy számot.

Amikor a felhasználó negatív számot ír be, akkor írjon be egy pozitív számot. megmutatva.

Amikor a felhasználó pozitív számot vagy 0-t ír be , a függvény factorial(num)meghívásra kerül.

  • Ha a felhasználó beírja a 0 számot , akkor a program 1-et ad vissza .
  • Ha a felhasználó 0- nál nagyobb számot ír be , akkor a program rekurzívan felhívja magát a szám csökkentésével.
  • Ez a folyamat addig folytatódik, amíg a szám 1. nem lesz. Ezután, amikor a szám eléri a 0 értéket, 1 visszatér.

Itt,

 faktoriális (4) 4 * faktoriális (3) faktoriális (3) 4 * 3 * faktoriális (2) faktoriális (2) eredményt ad vissza 4 * 3 * 2 * faktoriális (1) faktoriális (1) 4 * 3 * 2 * értéket ad vissza 1 * faktoriális (0) faktoriális (0) 4 * 3 * 2 * 1 * 1 értéket ad vissza

érdekes cikkek...