Özyinelemenin Temelleri
Coddy'nin C Journey'sinin Temeller bölümünün bir parçası. Ders 50 / 63.
Özyineleme, bir fonksiyonun bir problemi çözmek için kendisini çağırdığı bir tekniktir. Büyük bir problemi daha küçük, benzer problemlere bölerek çözmek gibidir.
Faktöriyeli hesaplayan basit bir özyinelemeli işleve bakalım:
int factorial(int n) {
// Temel durum: 0 veya 1'in faktöriyeli 1'dir
if (n <= 1) {
return 1;
}
// Özyinelemeli durum: n! = n * (n-1)!
return n * factorial(n - 1);
}Her özyinelemeli fonksiyonun şunlara ihtiyacı vardır:
- Özyinelemeyi durduracak bir temel durum
- Temel duruma doğru ilerleyen bir özyinelemeli durum
Örneğin, factorial(3) hesaplanırken:
- factorial(3), factorial(2)'yi çağırır
- factorial(2), factorial(1)'i çağırır
- factorial(1), 1 döndürür (temel durum)
- factorial(2), 2 * 1 = 2 değerini döndürür
- factorial(3), 3 * 2 = 6 değerini döndürür
Görev
KolaysumToN adlı, 1'den n'e kadar olan sayıların toplamını hesaplamak için özyineleme kullanan bir fonksiyon oluşturun.
Örneğin:
- sumToN(3), 6 (1 + 2 + 3) döndürmelidir
- sumToN(5), 15 (1 + 2 + 3 + 4 + 5) döndürmelidir
Fonksiyonunuz şunları yapmalıdır:
- n 1 olduğunda bir temel durum kullanın (1 döndürün)
- Aksi takdirde, n ile 1'den (n-1)'e kadar olan sayıların toplamını döndürün
Kendin dene
#include <stdio.h>
// sumToN fonksiyonunuzu buraya yazın
// main() fonksiyonunu değiştirmeyin
int main() {
int n;
scanf("%d", &n);
printf("%d", sumToN(n));
return 0;
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Kontrol Akışı
If İfadesiIf - ElseElse-IfSwitch CaseÜçlü Koşul OperatörüTekrar Mücadelesiİç İçe If - Else7Fonksiyonlar
Fonksiyon TanımlamaDönüş TürleriParametrelerTekrar Özeti Görevi #1Özyinelemenin TemelleriFonksiyon PrototipleriTekrar Özeti Görevi #22Değişkenler
Veri TürleriTamsayıOndalık - DoubleKarakterlerBoolean'larSabitlerprintf TemelleriDeğişken Adlandırma KurallarıTür Dönüştürme 1. BölümTür Dönüştürme 2. BölümTekrar Mücadelesi3Operatörler
Aritmetik OperatörlerModül OperatörüArtırma/AzaltmaAtama OperatörleriKarşılaştırma OperatörleriMantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Mantıksal Operatörler Bölüm 3Tekrar MücadelesiKendi başına pratik yap: Online C derleyicisi