Özyineleme, öğrencilerin AP CS A sınavına ne kadar hazır hissederek girdiğine sessizce karar veren konu. Neredeyse her yıl açık uçlu sorularda karşınıza çıkıyor ve bir kalıbı ezberlemenin işe yaramadığı nadir konulardan biri, çünkü her sorunun kendi taban durumu ve özyineleme adımı var.

1. Basamak toplamı. Verilen bir tam sayının basamaklarının toplamını özyinelemeli olarak döndürün. Taban durumu belirlemeyi ve her çağrıda problemi küçültmeyi pratik etmek için en basit başlangıç noktası.

2. Bir string'i ters çevirme. Döngü kullanmadan bir String'i ters çeviren özyinelemeli bir metot yazın. Bu, sadece aşağı inerken değil, call stack'te geri çıkarken ne olduğunu düşünmeye zorlar.

3. Üs alma fonksiyonu. power(taban, üs) fonksiyonunu özyinelemeli yazın. Bu kolay geldiğinde, her çağrıda üssü yarıya indiren daha hızlı versiyonu deneyin. İkisini karşılaştırmak, sınavda karşınıza çıkan özyineleme verimliliğini anlamanın iyi bir yolu.

4. Dizi arama varyasyonları. Bir dizideki en büyük değeri bulan ve ayrı olarak, bir değerin kaç kez geçtiğini sayan özyinelemeli metotlar yazın. Diziler ve özyineleme birlikte, sınavda sık görülen bir kombinasyon.

5. Basit 2D ızgara gezinme. Bir ızgaranın bir köşesinden diğerine, sadece sağa veya aşağı hareket ederek kaç yol olduğunu sayan özyinelemeli bir metot. Bu daha zor ve en zor açık uçlu özyineleme sorularının seviyesine yakın.

Herhangi bir şey yazmadan önce bunları kâğıt üzerinde çözün. En azından birinde call stack'i elle takip edin. Ne olduğunu çizebilen öğrenciler, sadece kalıbı bilen öğrencilere göre sınav baskısı altında genelde daha iyi performans gösteriyor.