CodeBlanks Logo Icon CodeBlanks

Recursive faktöryel

Faktöryeli recursion ile hesaplayan fonksiyonu yazmayı öğrenirsin.

İteratif çözüm

Faktöryel bir döngüyle de hesaplanabilir: 1'den n'ye kadar sayıları çarparsın. Bu, recursion'dan daha az bellek kullanır.

İteratif çözüm O(n) zaman ve O(1) bellek gerektirir. Recursive çözüm ise O(n) zaman ve O(n) bellek (yığın) gerektirir.

Recursive vs iteratif

Recursive faktöryel daha okunaklıdır ama her çağrı yığın alanı kullanır. İteratif çözüm daha verimlidir ama daha az zariftir.

Küçük n değerleri için her iki yöntem de hızlıdır. Büyük n için iteratif tercih edilir çünkü yığın taşması riski yoktur.

Uygulama İteratif faktöryel

factorial_iter(n) yaz. Döngü ile 1'den n'ye çarp. print(factorial_iter(5)) ile 120 yazdır.

Başlangıç kodu

solution.py
def factorial_iter(n):
    # Döngü ile faktöryel

Örnek çözüm

solution.py
def factorial_iter(n):
    # Döngü ile faktöryel
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
print(factorial_iter(5))

Beklenen çıktı

120

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 İteratif çarpım

Soru
Sonucu biriktirmek için ____ = 1 ile başla.
Cevap
Sonucu biriktirmek için result = 1 ile başla.

Açıklama: result doğru.

2 Recursive faktöryel: kavramları eşleştir

Kavram Anlamı
Recursive Yığın kullanır
İteratif O(1) bellek
0! = 1 Taban
n! = n*(n-1)! Özyineleme

3 İteratif faktöryel ne kadar bellek kullanır?

  • O(1) Doğru cevap
  • O(n^2)
  • O(n)
  • O(2^n)

Açıklama: İteratif faktöryel O(1) bellek kullanır.

Başlangıç bölümündeki tüm dersler