Bu örnekte, özyinelemeli(recursive) bir fonksiyon kullanarak doğal sayıların toplamını bulmayı öğreneceksiniz.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <stdio.h> int sayiTopla(int n); int main() { int num; printf("Sayı Gir: "); scanf("%d", &num); printf("Toplam = %d", sayiTopla(num)); return 0; } int sayiTopla(int n) { if (n != 0) return n + sayiTopla(n - 1); else return n; } |
Ekran Çıktısı:
1 2 3 4 |
Sayı Gir: 20 Toplam = 210 |
Başlangıçta sayiTopla() main () ‘den çağrılır ve 20 argüman olarak iletilir.
20 sayısı sayiTopla(19) sonucuna eklenir.
sayiTopla() ‘den sayiTopla()’ ye bir sonraki fonksiyon çağrısında, sayiTopla(18) sonucuna eklenen 19 geçilir. Bu süreç n, 0’a eşit olana kadar devam eder.
N 0’a eşit olduğunda, özyinelemeli çağrı yoktur. Bu, sonuçta tam sayıların toplamını main () işlevine döndürür.
1-100 arası sayıların toplamını bularak recursive fonksiyonu yazınız