C Öğreticisi 25 (Rekürsiyon (Özyineleme))

Bu yazılar www.tutorialspoint.com/cprogramming/ adresindeki yazı dizilerinin çevirileridir.

Özyineleme, öğeleri kendine benzer bir şekilde tekrarlama işlemidir. Programlama dillerinde, bir program aynı fonksiyon içindeki bir fonksiyonu çağırmanıza izin veriyorsa, fonksiyonun özyinelemeli çağrısı olarak adlandırılır.

void ozYineleme() {

ozYineleme(); /* fonksiyon kendisini cagirir */

}

int main() {

ozYineleme();

}

C programlama dili özyinelemeyi, yani kendini çağıracak bir fonksiyonu destekler. Ancak özyineleme kullanırken, programcıların fonksiyondan bir çıkış koşulu tanımlamaya dikkat etmeleri gerekir, aksi takdirde sonsuz bir döngüye girer.

Özyinelemeli fonksiyonlar, bir sayının faktöriyelini hesaplama, Fibonacci dizileri oluşturma, vb. gibi birçok matematiksel problemi çözmek için çok yararlıdır.

Faktöriyel

Aşağıdaki örnek verilen numaranın faktöriyelini özyinelemeli fonksiyonla hesaplar -

#include <stdio.h>

unsigned long long int faktoriyel(unsigned int i) {

if(i <= 1) {

return 1;

}

return i * faktoriyel(i — 1);

}

int main() {

int i = 12;

printf(“ %d’nin faktoriyeli = %d \n”, i, faktoriyel(i));

return 0;

}

Yukarıdaki kod derlenip çalıştırıldığında -

12’nin faktoriyeli = 479001600

Fibonacci Dizileri

Aşağıdaki örnek, yinelemeli bir fonksiyon kullanarak belirli bir sayı için Fibonacci dizisini oluşturur -

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

}

Yukarıdaki kod derlenip çalıştırıldığında -

0

1

1

2

3

5

8

13

21

34

https://www.tutorialspoint.com/cprogramming/c_recursion.htm

Last updated