Übungen
Übung 1
Schreibe eine rekursive Funktion is_even(n)
, die, gegeben eine natürliche Zahl n
überprüft, ob die Zahl gerade ist (even ist englisch für gerade). Für die Lösung darfst du weder den Modulo-Operator (%
), noch den Divisions-Operator (//
) benutzen.
>>> is_even(0)
True
>>> is_even(11)
False
>>> is_even(42)
True
Übung 2
count_digit(n, d)
, die, gegeben eine natürliche Zahl n
und eine Ziffer d
, zählt, wie oft die Ziffer d
in der Zahl n
vorkommt.
Beispiele:
>>> count_digit(12345, 1)
1
>>> count_digit(112233, 1)
2
>>> count_digit(12345, 6)
0
>>> count_digit(12121, 1)
3
Tipp
Überlege dir, wie du an die letzte Ziffer einer Zahl kommst und wie du die Zahl um eine Ziffer verkürzen kannst.
Übung 3: Achtung schwer!
Schreibe eine rekursive Funktion mult42(n)
, die, gegeben eine natürliche Zahl n, das Produkt der Zahl mit 42 berechnet, allerdings ohne dabei den Multiplikations-Operator (*
) zu benutzen. Zusätzliche Einschränkung: du darfst lediglich einen rekursiven Aufruf verwenden und musst das Argument dabei halbieren. Der rekursive Aufruf muss also lauten: mult42(n // 2)
.
>>> mult42(0)
0
>>> mult42(1)
42
>>> mult42(5)
210
Tipp
Eventuell kann dir die Funktion is_even
aus Übung 1 helfen.