Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:rekursion:uebungen01:start [09.05.2023 13:49] – Frank Schiebel | faecher:informatik:oberstufe:algorithmen:rekursion:uebungen01:start [29.01.2024 07:01] (aktuell) – Marco Kuemmel | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
=== (A1) Potenzberechnung === | === (A1) Potenzberechnung === | ||
- | Implementiere | + | Implementiere |
Dezimalzahl '' | Dezimalzahl '' | ||
- | // | + | // |
Zeile 45: | Zeile 45: | ||
=== (A2) Verzinsung === | === (A2) Verzinsung === | ||
- | Implementiere eine rekursive Methode '' | + | Implementiere eine rekursive Methode '' |
eines Guthabens | eines Guthabens | ||
Jahren als Ergebnis das verzinste Guthaben nach Ende der Laufzeit zurückgibt. | Jahren als Ergebnis das verzinste Guthaben nach Ende der Laufzeit zurückgibt. | ||
- | // | + | // |
++++ Hinweis | | ++++ Hinweis | | ||
Das funktioniert genau wie Aufgabe 1, wenn man sich klar macht, dass das Guthaben nach a Jahren berechnet werden kann als: | Das funktioniert genau wie Aufgabe 1, wenn man sich klar macht, dass das Guthaben nach a Jahren berechnet werden kann als: | ||
- | G(b,z,a)=b*(1+(z/ | + | G(g,z,a)=g*(1+(z/ |
++++ | ++++ | ||
Zeile 61: | Zeile 61: | ||
=== (A3) Fibonacci-Zahlen === | === (A3) Fibonacci-Zahlen === | ||
- | Implementiere | + | Implementiere |
natürlichen | natürlichen | ||
zweite Fibonacci-Zahl ist jeweils 1. Die weiteren Fibonacci-Zahlen berechnen sich als | zweite Fibonacci-Zahl ist jeweils 1. Die weiteren Fibonacci-Zahlen berechnen sich als | ||
Zeile 67: | Zeile 67: | ||
2, 3, 5, 8, 13, 21, 34, 55'' | 2, 3, 5, 8, 13, 21, 34, 55'' | ||
- | // | + | // |
++++ Hinweis | | ++++ Hinweis | | ||
Zeile 78: | Zeile 78: | ||
++++ Methodengerüst | | ++++ Methodengerüst | | ||
<code java> | <code java> | ||
- | public int fibonacci(int | + | public int fibonacci(int |
// Bsisfall | // Bsisfall | ||
- | if (a==1||a==2) { | + | if (n==1||n==2) { |
return FIXME | return FIXME | ||
} else { | } else { | ||
Zeile 108: | Zeile 108: | ||
{{ : | {{ : | ||
- | Die Länge des Strings kann man mit '' | + | Die Länge des Strings kann man mit '' |
=== Tipp 1: Basisfall === | === Tipp 1: Basisfall === | ||
Zeile 116: | Zeile 116: | ||
=== Tipp 2: Rekursionsfall === | === Tipp 2: Rekursionsfall === | ||
- | Anders als bei den bisherigen | + | Anders als bei den bisherigen |
++++ Hinweis: Codegerüst | | ++++ Hinweis: Codegerüst | | ||
Zeile 137: | Zeile 137: | ||
++++ | ++++ | ||
- | ++++ Lösungsvorschlag | | + | ++++ Lösungsvorschlag |
<code java> | <code java> | ||
Zeile 157: | Zeile 157: | ||
</ | </ | ||
++++ | ++++ | ||
+ | |||
+ | ++++ Lösungsvorschlag 2 | | ||
+ | |||
+ | <code java> | ||
+ | public boolean palindrom(String word, int start, int end) { | ||
+ | |||
+ | // Basisfall | ||
+ | if (end - start <= 1) { | ||
+ | return word.charAt(start) == word.charAt(end); | ||
+ | } | ||
+ | // Rekursionsfall | ||
+ | else { | ||
+ | start = start + 1; | ||
+ | end = end - 1; | ||
+ | return palindrom(word, | ||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
+ |