Latest web development tutorials

C récursif

Récursivité se réfère à la définition de la méthode de la fonction utilisée dans la fonction elle-même.

Par exemple:
Il était une fois une montagne, la montagne il y avait un temple, le temple a un vieux moine, racontait des histoires à jeune moine le! Quelle histoire est-il? "Il était une fois une montagne, la montagne il y avait un temple, le temple a un vieux moine, racontait des histoires à jeune moine lui! Quelle histoire est-il? 'Il était une fois une montagne, la montagne il y avait un temple, le temple a un vieux moine, est une histoire du jeune moine lui! Quelle histoire est-il? ...... ''

La syntaxe est la suivante:

void recursion()
{
   recursion(); /* 函数调用自身 */
}

int main()
{
   recursion();
}

Langage C récursivité de soutien, qui est, une fonction peut s'appeler. Cependant, lorsque vous utilisez récursion, le programmeur doit être noté que la définition d'une fonction sort des conditions, sinon il va entrer dans une boucle infinie.

fonction récursive dans la résolution de nombreux problèmes mathématiques a joué un rôle crucial, comme le calcul de la factorielle d'un nombre, générer nombre de Fibonacci, et ainsi de suite.

Nombre factoriel

L'exemple suivant utilise une fonction récursive pour calculer la factorielle d'un nombre donné:

#include <stdio.h>

double factorial(unsigned int i)
{
   if(i <= 1)
   {
      return 1;
   }
   return i * factorial(i - 1);
}
int  main()
{
    int i = 15;
    printf("%d 的阶乘为 %f\n", i, factorial(i));
    return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

15 的阶乘为 1307674368000.000000

nombre de Fibonacci

Fibonacci L'exemple suivant utilise une fonction récursive pour générer un nombre donné de colonnes:

#include <stdio.h>

int fibonaci(int i)
{
   if(i == 0)
   {
      return 0;
   }
   if(i == 1)
   {
      return 1;
   }
   return fibonaci(i-1) + fibonaci(i-2);
}

int  main()
{
    int i;
    for (i = 0; i < 10; i++)
    {
       printf("%d\t%n", fibonaci(i));
    }
    return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

0	1	1	2	3	5	8	13	21	34