Grundlagen der Programmierung (Pseudocode nachverfolgen)
Was gibt die folgende Funktion fib beim Aufruf fib(10) zurück?
○integer: fib(integer: n)
integer: a ← 0, b ← 1, t
for (i from 1 to n step 1)
t ← a + b
a ← b
b ← t
endfor
return a
- A34
- B55
- C89
Antwort und Erläuterung anzeigen
Antwort: B. 55
Jeder Durchlauf rückt (a, b) um ein Paar benachbarter Fibonacci-Zahlen weiter: (0, 1) → (1, 1) → (1, 2) → (2, 3) → (3, 5) → (5, 8) → (8, 13) → (13, 21) → (21, 34) → (34, 55) → (55, 89). Nach 10 Durchläufen gibt die Funktion a = 55 zurück. Nach dem i-ten Durchlauf ist a die i-te Fibonacci-Zahl. Eine naive rekursive Version berechnet dieselben Werte viele Male, diese Fassung braucht nur n Durchläufe.
Weiter: 9 weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)