Latest web development tutorials

C ricorsiva

Ricorsione si riferisce alla definizione del metodo funzione utilizzata nella funzione stessa.

Ad esempio:
C'era una volta una montagna, la montagna c'era un tempio, il tempio ha un vecchio monaco, stava raccontando storie ai giovane monaco si! Che storia è? "C'era una volta una montagna, la montagna c'era un tempio, il tempio ha un vecchio monaco, stava raccontando storie ai giovane monaco si! Che storia è? 'C'era una volta una montagna, la montagna c'era un tempio, il tempio ha un vecchio monaco, è una storia per il giovane monaco si! che storia è? ...... ''

La sintassi è la seguente:

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

int main()
{
   recursion();
}

linguaggio C supporto ricorsione, che è, una funzione può chiamare se stesso. Tuttavia, quando si utilizza la ricorsione, il programmatore deve notare che la definizione di una funzione esce dalle condizioni, altrimenti andrà in un ciclo infinito.

funzione ricorsiva a risolvere molti problemi matematici giocato un ruolo cruciale, quali il calcolo del fattoriale di un numero, generare il numero Fibonacci, e così via.

numero fattoriale

L'esempio seguente utilizza una funzione ricorsiva per calcolare il fattoriale di un dato numero:

#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;
}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

15 的阶乘为 1307674368000.000000

numero di Fibonacci

Fibonacci L'esempio seguente utilizza una funzione ricorsiva per generare un certo numero di colonne:

#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;
}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

0	1	1	2	3	5	8	13	21	34