რეკურსიული ფუნქციები

სწვალა

ფუნქციებს შორის შეიძლება ცალკე გამოვყოთ რეკურსიული ფუნქციები. მათი არსი მდგომარეობს იმაში, რომ ფუნქცია იძახებს თავის თავს. მაგალითისთვის ვნახოთ ფუნქცია, რომელიც ითვლის რიცხვის ფაქტორიალს:

function getFactorial(n) {
if (n === 1) {
return 1;
}
else {
return n * getFactorial(n – 1);
}
}
var result = getFactorial(4);
console.log(result); // 24

ფუნქცია getFactorial() აბრუნებს 1-ს, თუ n პარამეტრის მნიშვნელობაა 1, თუ არა და აბრუნებს ისევ getFactorial() ფუნქციის მნიშვნელობას პარამეტრით n-1, გამრავლებულს n-ზე.მაგალითად, პარამეტრად 4-ის გადაცემისას ვღებულობთ შემდეგ ჯაჭვს:

var result = 4 * getFactorial(3);
var result = 4 * 3 * getFactorial(2);
var result = 4 * 3 * 2 * getFactorial(1);
var result = 4 * 3 * 2 * 1; // 24

ვნახოთ მეორე მაგალითი – ფიბონაჩის რიცხვების გამოთვლა:

function getFibonachi(n) {
if (n == 0) {
return 0;
}
if (n == 1) {
return 1;
}
else {
return getFibonachi(n – 1) + getFibonachi(n – 2);
}
}
var result = getFibonachi(8); //21
console.log(result); // 21

წყარო: webschool.ge

0Shares