czwartek, 26 kwietnia 2018

Język C - Rekurencja


C - Rekurencja

Rekurencja jest procesem powtarzania elementów w sposób podobny do siebie. W językach programowania, jeśli program pozwala wywołać funkcję wewnątrz tej samej funkcji, wówczas nazywa się ją rekursywnym wywołaniem funkcji.
void recursion() {
   recursion(); /* funkcja wywołuje sama siebie */
}

int main() {
   recursion();
}
Język programowania C obsługuje rekurencję, tj. Funkcję wywoływania samej siebie. Ale podczas korzystania z rekursji, programiści muszą być ostrożni, aby zdefiniować warunek wyjścia z funkcji, w przeciwnym razie wejdzie w nieskończoną pętlę.
Funkcje rekurencyjne są bardzo przydatne do rozwiązywania wielu problemów matematycznych, takich jak obliczanie liczby silni, generowanie serii Fibonacciego itp.

Silnia

Poniższy przykład oblicza silnię podanej liczby przy użyciu funkcji rekursywnej:
#include <stdio.h>

unsigned long long int silnia(unsigned int i) {

   if(i <= 1) {
      return 1;
   }
   return i * silnia(i - 1);
}

int  main() {
   int i = 12;
   printf("Wartosc %d wynosi %d\n", i, silnia(i));
   return 0;
}
Gdy powyższy kod zostanie skompilowany i wykonany, wygeneruje się następujący wynik:
Silnia 12 wynosi 479001600

Ciąg Fibonacciego

Poniższy przykład generuje ciąg Fibonacci dla podanej liczby przy użyciu funkcji rekursywnej -
#include <stdio.h>

int fibonacci(int i) {

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

int  main() {

   int i;
       
   for (i = 0; i < 10; i++) {
      printf("%d\t\n", fibonacci(i));
   }
       
   return 0;
}
Gdy powyższy kod zostanie skompilowany i wykonany, wygeneruje się następujący wynik:
0        
1        
1        
2        
3        
5        
8        
13       
21       
34


Poprzednia strona                                                          Następna strona

Brak komentarzy:

Prześlij komentarz