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

Α11.5 · Το παραγοντικό αναδρομικά σε C

Διάλεξη 11, διαφάνειες 44–45 · Δυσκολία ★☆☆ · programming · Κεφάλαια: 11

Στα μαθηματικά το παραγοντικό ενός φυσικού αριθμού \(n\), συμβολίζεται με \(n!\) και είναι το γινόμενο όλων των θετικών ακεραίων μικρότερων ή ίσων του \(n\). Ο ορισμός του παραγοντικού στα μαθηματικά είναι αναδρομικός (recursive):

\[n! = 1 \text{ if } n = 0, \qquad n! = n \times (n-1)! \text{ if } n > 0\]

Πώς θα το γράφαμε σε C; Το πρόγραμμα παίρνει τον αριθμό από τη γραμμή εντολών:

$ ./fact 5
5! = 120

Υπόδειξη

Οι δύο γραμμές του ορισμού αντιστοιχούν στις δύο περιπτώσεις μιας αναδρομικής συνάρτησης: η πρώτη είναι η βάση τερματισμού, η δεύτερη η κλήση της συνάρτησης στον εαυτό της με μικρότερο όρισμα. Για την είσοδο, μετατρέψτε το argv[1] σε ακέραιο με την atoi.

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