Özyinelemeli Fonksiyonlar
Coddy'nin Kotlin Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 44 / 63.
Özyinelemeli bir işlev, kendisini daha küçük bir alt problem üzerinde çağırır. Temel durum, başka bir özyinelemeli çağrı yapmadan geri döner. Geri sayım toplamında sıfır temel durumdur ve n - 1 buna yaklaşır. Sıradan özyineleme çağrı yığını alanı kullanır, bu nedenle giriş derinliğini küçük tutun.
fun countdownSum(n: Int): Int {
if (n == 0) return 0
return n + countdownSum(n - 1)
}main içinde:
println(countdownSum(4))Çağrılar dört, üç, iki ve biri toplar, ardından sıfırda durur.
Özyinelemenin erişilebilir bir temel duruma ve ona doğru ilerlemeye ihtiyacı vardır.
Görev
OrtarecursiveSum işlevini number: Int parametresiyle tamamlayın. Özyineleme kullanarak 1'den number'a kadar olan sayıların toplamını döndürün. number, 0 ile 100 arasındadır. Sıfır için sonuç sıfırdır.
Yukarıda daha sıkı sınırlar belirtilmedikçe, koleksiyonlar her düzeyde en fazla 100 öğe içerir ve tamsayı bağımsız değişkenleri ile tamsayı koleksiyon değerleri -1000 ile 1000 arasındadır. Ayrıştırma için sağlanan metin, açıklandığı gibi geçersiz veya aralık dışı gösterimler içerebilir.
Int türünde bir değer döndürün. Sağlanan giriş/çıkış kodunu koruyun. Bu kod, skaler bağımsız değişkenleri satır başına bir tane okur; bir liste, ardından öğeleri gelen eleman sayısıyla başlar ve bir eşlem, ardından her anahtar ve değer gelen giriş sayısıyla başlar. İç içe listeler, her satır için eleman sayısı ve elemanlar biçimini tekrarlar. Sağlanan main, döndürülen değeri ve ardından bir yeni satır yazdırır. Listeler, Kotlin'in standart köşeli parantezli biçimini kullanır; ek etiket yazdırmayın.
Kendin dene
fun recursiveSum(number: Int): Int {
// Çözümünüzü buraya yazın.
return 0
}
fun main() {
val number = readln().toInt()
println(recursiveSum(number))
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Map'ler Bölüm 1
Map'ler OluşturmaGüvenli Map AramalarıMap'leri GüncellemeAnahtarları Kontrol EtmeTekrar - Stok Masası4İç İçe Koleksiyonlar
Liste ListeleriSatırlarda GezinmeSatır Özetleriİç İçe Listeleri DüzleştirmeTekrar - Oturma Sıraları7Koleksiyon İşlem Hatları
Map ile DönüştürmeDeğerleri FiltrelemeKoleksiyon Kurallarını Test EtmeFold ile BiriktirmeTekrar - Onaylanan Toplamlar2Map'ler Bölüm 2
Map Girdileri Üzerinde YinelemeAnahtarlar ve DeğerlerFrekans Map'leriİç İçe Map'lerTekrar - Frekans Raporu5Proje - Kişi Defteri
Kişileri KaydetmeKişileri Bulma3Kümeler ve Üyelik
Kümeler OluşturmaKümeleri GüncellemeKüme İşlemleriAlt Küme KontrolleriÖzet - Etkinlik Konukları6Fonksiyon Değerleri
Lambda YazmaFonksiyon TürleriFonksiyonları GeçirmeYakalanan DeğişkenlerÖzet - Yapılandırılabilir Puan9İleri Düzey Kontrol Akışı
Koruma KoşullarıEtiketli Döngülerden ÇıkmaEtiketli Döngülere Devam EtmeÖzyinelemeli FonksiyonlarTekrar - İlk Geçerli SatırKendi başına pratik yap: Kotlin playground