У овом примеру ћете научити да пишете ЈаваСцрипт програм који проналази факторијел броја помоћу рекурзије.
Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања ЈаваСцрипт:
- ЈаваСцрипт рекурзија
- ЈаваСцрипт иф … елсе Изјава
Факторијал броја је умножак свих бројева од 1 до тог броја. На пример,
факторијел од 5 једнак је 1 * 2 * 3 * 4 * 5 = 120 .
Факторијал позитивног броја н дат је са:
factorial of n (n!) = 1 * 2 * 3 * 4… n
Факторијал негативних бројева не постоји, а фактор 0 је 1 .
Пример: Пронађите факторијел користећи рекурзију
// 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.'); )
Оутпут
Унесите позитиван број: 4 Факторијал броја 4 је 24
У горе наведеном програму, од корисника се тражи да унесе број.
Када корисник унесе негативан број, приказује се порука Унесите позитиван број. је приказан.
Када корисник унесе позитиван број или 0 , функција factorial(num)
се позива.
- Ако корисник унесе број 0 , програм ће вратити 1 .
- Ако корисник унесе број већи од 0 , програм ће се рекурзивно позвати смањењем броја.
- Овај процес се наставља све док број не постане 1. Тада се, када број достигне 0, враћа 1.
Ево,
факторијел (4) враћа 4 * факторијел (3) факторијел (3) враћа 4 * 3 * факторијел (2) факторијел (2) враћа 4 * 3 * 2 * факторијел (1) факторијел (1) враћа 4 * 3 * 2 * 1 * факторијел (0) факторијел (0) враћа 4 * 3 * 2 * 1 * 1