Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α11.13 · Αρνητικό όρισμα στο αναδρομικό παραγοντικό

Διάλεξη 11, διαφάνεια 46 · Δυσκολία ★★☆ · short-answer · Κεφάλαια: 11

Τι θα συμβεί αν δώσουμε έναν αρνητικό αριθμό στη συνάρτησή μας;

int factorial(int number) {
  if (number == 0) return 1;
  else return number * factorial(number - 1);
}

Υπόδειξη

Ακολουθήστε τις τιμές του number στις διαδοχικές κλήσεις ξεκινώντας από -1. Φτάνει ποτέ στη βάση τερματισμού; Τι κοστίζει στη μνήμη κάθε κλήση που δεν έχει ακόμα επιστρέψει; Πώς θα άλλαζε η συνθήκη της βάσης για να προστατεύεται η συνάρτηση;

Αριθμός στον οδηγό: Α11.13 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lec11-factorial-negative · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec11-factorial-negative.html · Markdown (GitHub)