Solvequill Blog · coding · 7 dk okuma · 16 görüntülenme

Özyinelemede önce temel durum, sonra zekice kısım

Çağrıları açmadan önce durma noktasını adlandırarak recursive fonksiyonları anlamak.

Yayın tarihi:

Özyineleme ilk soruyu sorduğunda daha az gizemli olur: bu fonksiyon ne zaman duruyor?

Bu yazıyı hızlı bir özet gibi değil, çözüm sırasında karar vermeyi kolaylaştıran küçük bir çalışma notu gibi kullan. Önce fikri oku, sonra örneği kendin durdurup bir satır ilerletmeyi dene; en sonda kontrol listesini gerçek bir soruda uygula.

Ana fikir

Temel durumu yaz, sonra her çağrının girdiyi nasıl küçülttüğünü veya basitleştirdiğini söyle.

Buradaki önemli nokta yöntemi ezberlemek değil, yöntemi neyin çağırdığını fark etmektir. Soruda hangi ifade, şekil, birim, değişken veya kod davranışı sana bu yolu seçtirdi? Bunu adlandırabilirsen benzer soruda daha hızlı ve daha sakin ilerlersin.

Kısa örnek

Faktöriyel veya 'de durur; diğer her çağrı bu temel duruma bir adım yaklaşır.

Adım adım nasıl yaklaşılır?

  1. Verilenleri temizce yaz ve birimleri, sembolleri veya değişken adlarını düzelt.
  2. Sorunun istediği sonuca doğrudan gitmeden önce hangi ara bilginin gerektiğini belirle.
  3. Her satırdan sonra küçük bir kontrol yap: birimler tutuyor mu, işaret doğru mu, kodda girinti ve kapsam doğru mu?
  4. Cevabı bulunca ilk soruya geri dön ve sonucun gerçekten sorulan şeye cevap verip vermediğini kontrol et.

Çözerken kontrol et

  • Temel durumu bul.
  • Daha küçük girdiyi bul.
  • faktoriyel(3)gibi küçük bir örneği izle.

Sık yapılan hata

Temel duruma ilerlemeyen recursive fonksiyon, gizli çağrı yığını olan bir döngüdür.

Bu hatayı yakalamanın en pratik yolu, çözüm bittikten sonra sadece sonucu değil, karar noktalarını da kontrol etmektir. 'Neden bu formül?', 'Neden bu bileşen?', 'Neden bu döngü koşulu?' gibi sorular cevabın doğruluğunu içerik açısından da güçlendirir.

Kendi sorunu açıklamalı videoya dönüştür

Soruyu yaz veya fotoğrafını yükle; Solvequill çözümü adım adım anlatan bir video üretsin.

Solvequill'i aç

Devam etmek için