sumN
που θα δέχεται όρισμα ένα φυσικό αριθμό n
και θα υπολογίζει το άθροισμα 1 + 2 + ... + n.
def sumN(n):
if n == 1:
return 1
else:
return n + sumN(n - 1)
print(sumN(4)) #prints 10
multiply
που θα δέχεται όρισμα δύο φυσικούς αριθμούς m
και n
και θα υπολογίζει το γινόμενο m * n.
def multiply(m, n):
if n == 1:
return m
else:
return m + multiply(m, n - 1)
print(multiply(5, 3)) #prints 15
sumInverseN
που θα δέχεται όρισμα ένα φυσικό αριθμό n
και θα υπολογίζει το άθροισμα 1 + 1/2 + ... + 1/n.
gcd(a,0)=a
gcd (a,b) = gcd(b, a mod b)
Γράψτε μια αναδρομική συνάρτηση gcd
που να δέχεται ως όρισμα δύο φυσικούς αριθμούς a
και b
και θα υπολογίζει το μέγιστο κοινό διαιρέτη τους.
countDigits
που να δέχεται ως όρισμα ένα φυσικό αριθμό n
και να υπολογίζει το άθροισμα των ψηφίων του.
recursiveSum
που να υπολογίζει το άθροισμα των στοιχείων μιας λίστας ακεραίων.
n
και να επιστρέφει τη n-ιοστή γραμμή του τριγώνου του Pascal (τρίγωνο με τους διωνυμικούς συντελεστές).
[Υπόδειξη. Με εξαίρεση τις δύο πλευρές του τριγώνου όπου όλοι οι συντελεστές είναι 1, οι υπόλοιποι συντελεστές προκύπτουν αθροίζοντας τους δύο πάνω δεξιά και αριστερά όρους, όπως φαίνεται στην εικόνα.]
Φτιάξτε ένα πρόγραμμα που να λύνει το πρόβλημα των πύργων του Hanoi.
[Υπόδειξη. Φτιάξτε μια αναδρομική συνάρτηση που να μετακινεί ένα αριθμό από δίσκους από μια αρχική στήλη σε μια τελική στήλη χρησιμοποιώντας την τρίτη στήλη ως βοηθητική.]