CodeBlanks Logo Icon CodeBlanks

Taban durum seçimi

0! = 1 taban durumunun nasıl çalıştığını ve hatalı taban durumun tehlikesini öğrenirsin.

Taban durum seçimi

Faktöryelde taban durum 0! = 1'dir. Bu, recursion'ın durmasını sağlar. Yanlış taban durum sonsuz çağrıya neden olur.

1! = 1 de taban durum olarak kullanılabilir. Bu durumda özyineleme adımı 1'den başlar ve bir çağrı azalır.

Karmaşıklık

Recursive faktöryelin karmaşıklığı O(n)'dir: her çağrı n'yi bir azaltır, toplam n çağrı yapılır. Fibonacci'den farklı olarak tekrar yoktur.

Bellek karmaşıklığı da O(n)'dir çünkü her çağrı yığına bir çerçeve ekler. İteratif çözüm O(1) bellek kullanır.

Uygulama Faktöryel çağrısı

factorial_call(n) yaz. n=1 ise 1, değilse n * factorial_call(n-1). print(factorial_call(4)) ile 24 yazdır.

Başlangıç kodu

solution.py
def factorial_call(n):
    # Faktöryel çağır

Örnek çözüm

solution.py
def factorial_call(n):
    # Faktöryel çağır
    if n == 1:
        return 1
    return n * factorial_call(n - 1)
print(factorial_call(4))

Beklenen çıktı

24

Soru ve cevaplar

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

1 Taban durum seçimi: kavramları eşleştir

Kavram Anlamı
0! = 1 Taban değer
n! = n*(n-1)! Özyineleme adımı
Zaman O(n) süre
Bellek O(n) yığın

2 Recursive faktöryelin zaman karmaşıklığı nedir?

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

Açıklama: O(n)'dir, n çağrı yapılır.

3 Bellek karmaşıklığı

Soru
Recursive faktöryel bellek karmaşıklığı ____'dir.
Cevap
Recursive faktöryel bellek karmaşıklığı O(n)'dir.

Açıklama: O(n) doğru.

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