Maison > interface Web > js tutoriel > le corps du texte

Comment JavaScript utilise la récursivité

醉折花枝作酒筹
Libérer: 2021-04-29 09:12:43
avant
2499 Les gens l'ont consulté

Cet article vous présentera la méthode de récursivité JavaScript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment JavaScript utilise la récursivité

Récursion :

La fonction appelle la fonction elle-même, qui est la récursion doit avoir une condition de fin

    function f1() {
        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");
        f1();
    };
    f1();//浏览器崩溃,因为没有结束条件——死循环

	改进如下:
	    var i=0;
    function f1() {
        i++;
        if (i<5){
            f1();
        }
        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");
    };
    f1();
Copier après la connexion
.

Petite châtaigne :

Implémentation récursive : trouver la somme de n nombres n=5 ------->5+4+3+2 + 1

//for 循环写法:
    var sum=0;
    for (var i=0;i<=5;i++){
        sum+=i;
    }
    console.log(sum);
----------------------分割线---------------------------

   function getSum(x) {
        if (x==1){
          return 1
        }
        return x+getSum(x-1);
    };

    var sum1=getSum(5);
    console.log(sum1);
    console.log(getSum(10));
Copier après la connexion

Processus d'exécution :
Le code exécute getSum(5)—>entre dans la fonction À ce moment, x vaut 5, et ce qui est exécuté est. 5+getSum( 4), à ce moment le code attend

à ce moment 5+getSum(4), le code ne calcule pas en premier, exécute d'abord getSum(4), entre dans la fonction, exécute 4+getSum(3), attend, la première exécution est getSum(3), entrez la fonction, exécutez 3+getSum(2), attendez, exécutez getSum(2) en premier, entrez la fonction, exécutez 2+getSum(1) ; attendez, exécutez getSum(1) d'abord, exécutez Le jugement est que x==1, renvoie 1, donc,

Le résultat de getSum(1) à ce moment est 1, commencez à sortir

2+getSum(1) à ce moment Le résultat est : 2+1

Exécution :

getSum(2)---->2+1

3+getSum(2) Le résultat à ce moment Il est 3+2+1

4+getSum(3) Le résultat à ce moment est 4+3+2+1

5+getSum(4) Le résultat à ce moment est 5+4 +3+2+1

    结果:15
Copier après la connexion

Quelques autres :

    //递归案例:求一个数字各个位数上的数字的和:  123   --->6 ---1+2+3
    //523
    function getEverySum(x) {
        if(x<10){
            return x;
        }
        //获取的是这个数字的个位数
        return x%10+getEverySum(parseInt(x/10));
    }
    console.log(getEverySum(1364));//5
Copier après la connexion
 //递归案例:求斐波那契数列

    function getFib(x) {
        if(x==1||x==2){
            return 1
        }
        return getFib(x-1)+getFib(x-2);
    }
    console.log(getFib(12));
Copier après la connexion

[Apprentissage recommandé : Tutoriel avancé javascript]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal